Re: [PATCH] fill in missing pv_mmu_ops entries for PAGETABLE_LEVELS >= 3

2008-01-28 Thread Glauber de Oliveira Costa

Ingo Molnar wrote:

* Marcelo Tosatti <[EMAIL PROTECTED]> wrote:

  
The first fix is not even specific for PARAVIRT, and it's actually 
preventing the whole tree from booting.


  

And the following allows PARAVIRT kernels to boot on x86_64.



  
Fill in missing pagetable manipulation entries in pv_mmu_ops 
for PAGETABLE_LEVELS >= 3.



thanks Marcelo - picked this up and the other changes as well. I guess 
the only thing missing at the moment is the proper Kconfig changes to 
allow the building of a 64-bit PARAVIRT kernel?

Ingo
  

For normal hardware yes. But I still have a vsmp patch in the queue.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] fill in missing pv_mmu_ops entries for PAGETABLE_LEVELS = 3

2008-01-28 Thread Glauber de Oliveira Costa

Ingo Molnar wrote:

* Marcelo Tosatti [EMAIL PROTECTED] wrote:

  
The first fix is not even specific for PARAVIRT, and it's actually 
preventing the whole tree from booting.


  

And the following allows PARAVIRT kernels to boot on x86_64.



  
Fill in missing pagetable manipulation entries in pv_mmu_ops 
for PAGETABLE_LEVELS = 3.



thanks Marcelo - picked this up and the other changes as well. I guess 
the only thing missing at the moment is the proper Kconfig changes to 
allow the building of a 64-bit PARAVIRT kernel?

Ingo
  

For normal hardware yes. But I still have a vsmp patch in the queue.
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] fill in missing pv_mmu_ops entries for PAGETABLE_LEVELS >= 3

2008-01-22 Thread Ingo Molnar

* Marcelo Tosatti <[EMAIL PROTECTED]> wrote:

> > The first fix is not even specific for PARAVIRT, and it's actually 
> > preventing the whole tree from booting.
> > 
> 
> And the following allows PARAVIRT kernels to boot on x86_64.

> Fill in missing pagetable manipulation entries in pv_mmu_ops 
> for PAGETABLE_LEVELS >= 3.

thanks Marcelo - picked this up and the other changes as well. I guess 
the only thing missing at the moment is the proper Kconfig changes to 
allow the building of a 64-bit PARAVIRT kernel?

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] fill in missing pv_mmu_ops entries for PAGETABLE_LEVELS = 3

2008-01-22 Thread Ingo Molnar

* Marcelo Tosatti [EMAIL PROTECTED] wrote:

  The first fix is not even specific for PARAVIRT, and it's actually 
  preventing the whole tree from booting.
  
 
 And the following allows PARAVIRT kernels to boot on x86_64.

 Fill in missing pagetable manipulation entries in pv_mmu_ops 
 for PAGETABLE_LEVELS = 3.

thanks Marcelo - picked this up and the other changes as well. I guess 
the only thing missing at the moment is the proper Kconfig changes to 
allow the building of a 64-bit PARAVIRT kernel?

Ingo
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] fill in missing pv_mmu_ops entries for PAGETABLE_LEVELS >= 3

2008-01-21 Thread Jeremy Fitzhardinge

Eduardo Pereira Habkost wrote:

+   .pud_clear = native_pud_clear,



On the patches I will send, pud_clear() and pgd_clear() aren't present
on pv_mmu_ops and are implemented using set_pud() and set_pgd().
  


Actually, I changed my mind on that.  pud_clear needs special handling 
with 32-bit PAE, so I'd prefer to keep it a separate operation.


   J
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] fill in missing pv_mmu_ops entries for PAGETABLE_LEVELS >= 3

2008-01-21 Thread Eduardo Pereira Habkost
On Sat, Jan 19, 2008 at 04:19:09PM -0200, Marcelo Tosatti wrote:
> On Fri, Jan 18, 2008 at 03:20:15PM -0200, Glauber de Oliveira Costa wrote:
> > Hi,
> > 
> > This small series provides some more fixes towards the goal
> > to have the PARAVIRT selectable for x86_64. After that, just
> > some more small steps are needed.
> > 
> > The first fix is not even specific for PARAVIRT, and it's actually
> > preventing the whole tree from booting.
> > 
> 
> And the following allows PARAVIRT kernels to boot on x86_64.
> 
> -
> 
> Fill in missing pagetable manipulation entries in pv_mmu_ops 
> for PAGETABLE_LEVELS >= 3.
> 
> Signed-off-by: Marcelo Tosatti <[EMAIL PROTECTED]>
> 
> 
> Index: linux-2.6-x86/arch/x86/kernel/paravirt.c
> ===
> --- linux-2.6-x86.orig/arch/x86/kernel/paravirt.c
> +++ linux-2.6-x86/arch/x86/kernel/paravirt.c
> @@ -396,16 +396,25 @@ struct pv_mmu_ops pv_mmu_ops = {
>   .kmap_atomic_pte = kmap_atomic,
>  #endif
>  
> +#if PAGETABLE_LEVELS >= 3
>  #ifdef CONFIG_X86_PAE
>   .set_pte_atomic = native_set_pte_atomic,
>   .set_pte_present = native_set_pte_present,
> - .set_pud = native_set_pud,
>   .pte_clear = native_pte_clear,
>   .pmd_clear = native_pmd_clear,
> -
> +#endif
> + .set_pud = native_set_pud,
> + .set_pgd = native_set_pgd,
> + .pgd_clear = native_pgd_clear,
>   .pmd_val = native_pmd_val,
>   .make_pmd = native_make_pmd,

Current x86.git doesn't have .set_pgd or .pgd_clear fields on
pv_mmu_ops.

Those fields, and the implementations of set_pgd(), __pud() and pud_val()
were missing on the last series from Glauber. I will send the missing
bits today.

> + .pud_clear = native_pud_clear,

On the patches I will send, pud_clear() and pgd_clear() aren't present
on pv_mmu_ops and are implemented using set_pud() and set_pgd().

-- 
Eduardo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] fill in missing pv_mmu_ops entries for PAGETABLE_LEVELS = 3

2008-01-21 Thread Eduardo Pereira Habkost
On Sat, Jan 19, 2008 at 04:19:09PM -0200, Marcelo Tosatti wrote:
 On Fri, Jan 18, 2008 at 03:20:15PM -0200, Glauber de Oliveira Costa wrote:
  Hi,
  
  This small series provides some more fixes towards the goal
  to have the PARAVIRT selectable for x86_64. After that, just
  some more small steps are needed.
  
  The first fix is not even specific for PARAVIRT, and it's actually
  preventing the whole tree from booting.
  
 
 And the following allows PARAVIRT kernels to boot on x86_64.
 
 -
 
 Fill in missing pagetable manipulation entries in pv_mmu_ops 
 for PAGETABLE_LEVELS = 3.
 
 Signed-off-by: Marcelo Tosatti [EMAIL PROTECTED]
 
 
 Index: linux-2.6-x86/arch/x86/kernel/paravirt.c
 ===
 --- linux-2.6-x86.orig/arch/x86/kernel/paravirt.c
 +++ linux-2.6-x86/arch/x86/kernel/paravirt.c
 @@ -396,16 +396,25 @@ struct pv_mmu_ops pv_mmu_ops = {
   .kmap_atomic_pte = kmap_atomic,
  #endif
  
 +#if PAGETABLE_LEVELS = 3
  #ifdef CONFIG_X86_PAE
   .set_pte_atomic = native_set_pte_atomic,
   .set_pte_present = native_set_pte_present,
 - .set_pud = native_set_pud,
   .pte_clear = native_pte_clear,
   .pmd_clear = native_pmd_clear,
 -
 +#endif
 + .set_pud = native_set_pud,
 + .set_pgd = native_set_pgd,
 + .pgd_clear = native_pgd_clear,
   .pmd_val = native_pmd_val,
   .make_pmd = native_make_pmd,

Current x86.git doesn't have .set_pgd or .pgd_clear fields on
pv_mmu_ops.

Those fields, and the implementations of set_pgd(), __pud() and pud_val()
were missing on the last series from Glauber. I will send the missing
bits today.

 + .pud_clear = native_pud_clear,

On the patches I will send, pud_clear() and pgd_clear() aren't present
on pv_mmu_ops and are implemented using set_pud() and set_pgd().

-- 
Eduardo
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] fill in missing pv_mmu_ops entries for PAGETABLE_LEVELS = 3

2008-01-21 Thread Jeremy Fitzhardinge

Eduardo Pereira Habkost wrote:

+   .pud_clear = native_pud_clear,



On the patches I will send, pud_clear() and pgd_clear() aren't present
on pv_mmu_ops and are implemented using set_pud() and set_pgd().
  


Actually, I changed my mind on that.  pud_clear needs special handling 
with 32-bit PAE, so I'd prefer to keep it a separate operation.


   J
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] fill in missing pv_mmu_ops entries for PAGETABLE_LEVELS >= 3

2008-01-19 Thread Jeremy Fitzhardinge

Marcelo Tosatti wrote:

On Fri, Jan 18, 2008 at 03:20:15PM -0200, Glauber de Oliveira Costa wrote:
  

Hi,

This small series provides some more fixes towards the goal
to have the PARAVIRT selectable for x86_64. After that, just
some more small steps are needed.

The first fix is not even specific for PARAVIRT, and it's actually
preventing the whole tree from booting.




And the following allows PARAVIRT kernels to boot on x86_64.

-

Fill in missing pagetable manipulation entries in pv_mmu_ops 
for PAGETABLE_LEVELS >= 3.


Signed-off-by: Marcelo Tosatti <[EMAIL PROTECTED]>
  


Looks good, thanks.

Acked-by: Jeremy Fitzhardinge <[EMAIL PROTECTED]>



Index: linux-2.6-x86/arch/x86/kernel/paravirt.c
===
--- linux-2.6-x86.orig/arch/x86/kernel/paravirt.c
+++ linux-2.6-x86/arch/x86/kernel/paravirt.c
@@ -396,16 +396,25 @@ struct pv_mmu_ops pv_mmu_ops = {
.kmap_atomic_pte = kmap_atomic,
 #endif
 
+#if PAGETABLE_LEVELS >= 3

 #ifdef CONFIG_X86_PAE
.set_pte_atomic = native_set_pte_atomic,
.set_pte_present = native_set_pte_present,
-   .set_pud = native_set_pud,
.pte_clear = native_pte_clear,
.pmd_clear = native_pmd_clear,
-
+#endif
+   .set_pud = native_set_pud,
+   .set_pgd = native_set_pgd,
+   .pgd_clear = native_pgd_clear,
.pmd_val = native_pmd_val,
.make_pmd = native_make_pmd,
+
+#if PAGETABLE_LEVELS == 4
+   .pud_val = native_pud_val,
+   .make_pud = native_make_pud,
+   .pud_clear = native_pud_clear,
 #endif
+#endif /* PAGETABLE_LEVELS >= 3 */
 
 	.pte_val = native_pte_val,

.pgd_val = native_pgd_val,



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/
  


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH] fill in missing pv_mmu_ops entries for PAGETABLE_LEVELS >= 3

2008-01-19 Thread Marcelo Tosatti
On Fri, Jan 18, 2008 at 03:20:15PM -0200, Glauber de Oliveira Costa wrote:
> Hi,
> 
> This small series provides some more fixes towards the goal
> to have the PARAVIRT selectable for x86_64. After that, just
> some more small steps are needed.
> 
> The first fix is not even specific for PARAVIRT, and it's actually
> preventing the whole tree from booting.
> 

And the following allows PARAVIRT kernels to boot on x86_64.

-

Fill in missing pagetable manipulation entries in pv_mmu_ops 
for PAGETABLE_LEVELS >= 3.

Signed-off-by: Marcelo Tosatti <[EMAIL PROTECTED]>


Index: linux-2.6-x86/arch/x86/kernel/paravirt.c
===
--- linux-2.6-x86.orig/arch/x86/kernel/paravirt.c
+++ linux-2.6-x86/arch/x86/kernel/paravirt.c
@@ -396,16 +396,25 @@ struct pv_mmu_ops pv_mmu_ops = {
.kmap_atomic_pte = kmap_atomic,
 #endif
 
+#if PAGETABLE_LEVELS >= 3
 #ifdef CONFIG_X86_PAE
.set_pte_atomic = native_set_pte_atomic,
.set_pte_present = native_set_pte_present,
-   .set_pud = native_set_pud,
.pte_clear = native_pte_clear,
.pmd_clear = native_pmd_clear,
-
+#endif
+   .set_pud = native_set_pud,
+   .set_pgd = native_set_pgd,
+   .pgd_clear = native_pgd_clear,
.pmd_val = native_pmd_val,
.make_pmd = native_make_pmd,
+
+#if PAGETABLE_LEVELS == 4
+   .pud_val = native_pud_val,
+   .make_pud = native_make_pud,
+   .pud_clear = native_pud_clear,
 #endif
+#endif /* PAGETABLE_LEVELS >= 3 */
 
.pte_val = native_pte_val,
.pgd_val = native_pgd_val,



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] fill in missing pv_mmu_ops entries for PAGETABLE_LEVELS = 3

2008-01-19 Thread Jeremy Fitzhardinge

Marcelo Tosatti wrote:

On Fri, Jan 18, 2008 at 03:20:15PM -0200, Glauber de Oliveira Costa wrote:
  

Hi,

This small series provides some more fixes towards the goal
to have the PARAVIRT selectable for x86_64. After that, just
some more small steps are needed.

The first fix is not even specific for PARAVIRT, and it's actually
preventing the whole tree from booting.




And the following allows PARAVIRT kernels to boot on x86_64.

-

Fill in missing pagetable manipulation entries in pv_mmu_ops 
for PAGETABLE_LEVELS = 3.


Signed-off-by: Marcelo Tosatti [EMAIL PROTECTED]
  


Looks good, thanks.

Acked-by: Jeremy Fitzhardinge [EMAIL PROTECTED]



Index: linux-2.6-x86/arch/x86/kernel/paravirt.c
===
--- linux-2.6-x86.orig/arch/x86/kernel/paravirt.c
+++ linux-2.6-x86/arch/x86/kernel/paravirt.c
@@ -396,16 +396,25 @@ struct pv_mmu_ops pv_mmu_ops = {
.kmap_atomic_pte = kmap_atomic,
 #endif
 
+#if PAGETABLE_LEVELS = 3

 #ifdef CONFIG_X86_PAE
.set_pte_atomic = native_set_pte_atomic,
.set_pte_present = native_set_pte_present,
-   .set_pud = native_set_pud,
.pte_clear = native_pte_clear,
.pmd_clear = native_pmd_clear,
-
+#endif
+   .set_pud = native_set_pud,
+   .set_pgd = native_set_pgd,
+   .pgd_clear = native_pgd_clear,
.pmd_val = native_pmd_val,
.make_pmd = native_make_pmd,
+
+#if PAGETABLE_LEVELS == 4
+   .pud_val = native_pud_val,
+   .make_pud = native_make_pud,
+   .pud_clear = native_pud_clear,
 #endif
+#endif /* PAGETABLE_LEVELS = 3 */
 
 	.pte_val = native_pte_val,

.pgd_val = native_pgd_val,



--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/
  


--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/