OpenVZ Forum


Home » International » Russian » Как там дела с 2.6.18-8.el5 028stab034.1 ?
Re: Как там дела с 2.6.18-8.el5 028stab034.1 ? [message #14086 is a reply to message #14063] Thu, 14 June 2007 11:25 Go to previous messageGo to previous message
dev is currently offline  dev
Messages: 1693
Registered: September 2005
Location: Moscow
Senior Member

seyko2 wrote on Thu, 14 June 2007 00:28

Осталось только пропатчить include/asm/march-xen/asm/processor.h на предмет указанных define. Ибо хавается он, а не include/asm/processor.h




блин, облажался... %( все время забываю что они накопировали код :/

Quote:



 diff -u include/asm/mach-xen/asm/processor.h.orig  include/asm/mach-xen/asm/processor.h
--- include/asm/mach-xen/asm/processor.h.orig   2007-06-14 00:15:55.000000000 +0400
+++ include/asm/mach-xen/asm/processor.h        2007-06-14 00:16:07.000000000 +0400
@@ -569,6 +569,32 @@
  */
 extern int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags);
 
+#ifdef CONFIG_X86_HIGH_ENTRY
+#define virtual_esp0(task) \
+       ((unsigned long)((task)->thread_info->virtual_stack + ((task)->thread.esp0 - (unsigned long)(task)->thread_info->real_stack)))
+#define load_virtual_esp0(tss, task)                                   \
+       do {                                                            \
+               tss->esp0 = virtual_esp0(task);                         \
+               if (likely(cpu_has_sep) && unlikely(tss->ss1 != (task)->thread.sysenter_cs)) {  \
+                       tss->ss1 = (task)->thread.sysenter_cs;          \
+                       wrmsr(MSR_IA32_SYSENTER_CS,                     \
+                               (task)->thread.sysenter_cs, 0);         \
+               }                                                       \
+       } while (0)
+
+#else
+
+#define virtual_esp0(task) ((task)->thread.esp0)
+#define load_virtual_esp0(tss, task) load_esp0(tss, &(task)->thread) 
+
+#endif
+
+#ifndef CONFIG_XEN
+#define __get_cpu_tss(cpu) (init_tss + (cpu))
+#else
+#define __get_cpu_tss(cpu) (&per_cpu(init_tss, cpu))
+#endif
+
 extern unsigned long thread_saved_pc(struct task_struct *tsk);
 void show_trace(struct task_struct *task, struct pt_regs *regs, unsigned long *stack);





А как Вам такой вариант:

--- ./arch/i386/Kconfig.ve9992  2007-06-08 19:39:07.000000000 +0400
+++ ./arch/i386/Kconfig 2007-06-14 14:58:27.000000000 +0400
@@ -223,6 +223,7 @@ source "arch/i386/Kconfig.cpu"

 config X86_4G
        bool "4 GB kernel-space and 4 GB user-space virtual memory support"
+       depends on !X86_XEN
        help
           This option is only useful for systems that have more than 1 GB
           of RAM.
--- ./include/asm-i386/mach-xen/asm/processor.h.ve9992  2007-06-08 19:39:07.000000000 +0400
+++ ./include/asm-i386/mach-xen/asm/processor.h 2007-06-14 15:04:30.000000000 +0400
@@ -535,6 +535,9 @@ static inline void __load_esp0(struct ts
        HYPERVISOR_stack_switch(__KERNEL_DS, (thread)->esp0)
 #endif

+#define load_virtual_esp0(tss, task) load_esp0(tss, &(task)->thread)
+#define __get_cpu_tss(cpu) (&per_cpu(init_tss, cpu))
+
 #define start_thread(regs, new_eip, new_esp) do {              \
        __asm__("movl %0,%%fs ; movl %0,%%gs": :"r" (0));       \
        set_fs(USER_DS);                                        \


Quote:


И что конкретно делать для остальных файлов в этом каталоге? openvz пропатчил кучу файлов в include/asm, аналоги которых есть в include/asm/mach-xen/asm
  desc.h
  fixmap.h
  highmem.h
  kmap_types.h
  mmu.h
  mmu_context.h
  page.h
  pgtable.h
  processor.h
  system.h
  tlbflush.h


Попытка пропатчить эти файлы по аналогии -- провалилась. Ибо тогда вылезает куча проблем с компиляцией. Получается, что для XEN-архитектуры BIG-mem patch применился лишь частично и работать не будет.



мое IMHO: ничего не делать. в Xen'е нафиг не нужен 4/4GB split, и боюсь он там просто напросто и работать-то не будет без серьезных усилий, потому как вещь это сильно завязанная на архитектуру, а Xen как раз меняет по сути архитектурный код. А самое главное в этой фичи особого смысла нет для Xen'а - она нужна чтобы запускать как можно больше VE на i386.

Quote:


Можно поиметь этот BIG-mem patch в отдельном виде?



Да, конечно.
http://download.openvz.org/~dev/patches-035-ovz/
все патчи начинающиеся на diff-arch-4g

Quote:


Да, а ругается в domU файл arch/i386/kernel/fixup.c Собрал сам на всякий случай ядро rhel5 (для проверки особенностей сборки). Оно, как и оригинальное ядро от RH, не ругается...



Вопрос: а оно ругается если не стартовать VE?
На какие процессы хотя бы жалуется?
Насколь я понимаю из описания оно должно жаловаться на glibc у которой TLS support собран как-то по старому. Наверняка, в каких-то VE как раз это и происходит. На хосте по идее все должно быть пучком.


http://static.openvz.org/userbars/openvz-developer.png
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: *SOLVED* завис - проблема ovz ядра?
Next Topic: openvz и vdso -- так в чем проблема?
Goto Forum:
  


Current Time: Tue Jul 23 07:24:27 GMT 2024

Total time taken to generate the page: 0.04103 seconds