Re: [PATCH -mm 0/3] i386 boot: replace boot_ioremap with enhanced bt_ioremap

2008-01-15 Thread H. Peter Anvin

Ingo Molnar wrote:

* H. Peter Anvin <[EMAIL PROTECTED]> wrote:

I did a quick scan over the patchset (not quite awake yet, so I may 
very well have missed something), but it looks like EFI (again!) is 
the only user of ioremapping before paging_init().  This makes me 
wonder if that code can't be restructured so that isn't necessary.


i think that in general making access to unmapped memory a bit easier is 
generally a good robustness idea as ACPI could be impacted by it as 
well.


Fundamentally, paging_init() has obvious dependency on "figuring out the 
memory setup" of the box, and "figuring out the memory setup" means 
interpreting various data structures passed in by the BIOS - some of 
which might be in not yet mapped areas or iommu areas (if we have to do 
some early quirk). So having a robust implementation of ioremap_early() 
sounds like a definitive plus.




Fair enough.  If it's generally useful, I certainly have no objections.

-hpa
--
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 -mm 0/3] i386 boot: replace boot_ioremap with enhanced bt_ioremap

2008-01-15 Thread Ingo Molnar

* H. Peter Anvin <[EMAIL PROTECTED]> wrote:

> I did a quick scan over the patchset (not quite awake yet, so I may 
> very well have missed something), but it looks like EFI (again!) is 
> the only user of ioremapping before paging_init().  This makes me 
> wonder if that code can't be restructured so that isn't necessary.

i think that in general making access to unmapped memory a bit easier is 
generally a good robustness idea as ACPI could be impacted by it as 
well.

Fundamentally, paging_init() has obvious dependency on "figuring out the 
memory setup" of the box, and "figuring out the memory setup" means 
interpreting various data structures passed in by the BIOS - some of 
which might be in not yet mapped areas or iommu areas (if we have to do 
some early quirk). So having a robust implementation of ioremap_early() 
sounds like a definitive plus.

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 -mm 0/3] i386 boot: replace boot_ioremap with enhanced bt_ioremap

2008-01-15 Thread Ingo Molnar

* Huang, Ying <[EMAIL PROTECTED]> wrote:

> > in latest x86.git#mm there's an early_ioremap() introduced as part 
> > of the PAT series - available on both 32-bit and 64-bit. Could you 
> > take a look at it and use that if it's OK for your purposes?
> 
> After checking the early_ioremap() implementation in 
> arch/x86/kernel/setup_32.c, I found that it is a duplication of 
> bt_ioremap() implementation in arch/x86/mm/ioremap_32.c. Both 
> implementations use set_fixmap(), so they can be used only after 
> paging_init().
> 
> The early_ioremap implementation provided in this patchset works as 
> follow:
> 
> - Enhances bt_ioremap, make it usable before paging_init() via a
> dedicated PTE page.
> - Rename bt_ioremap to early_ioremap
>
> So I think maybe we should replace the early_ioremap() implementation 
> in PAT series with that of this series.

yep, agreed, that would be nice.

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 -mm 0/3] i386 boot: replace boot_ioremap with enhanced bt_ioremap

2008-01-15 Thread H. Peter Anvin

Huang, Ying wrote:


After checking the early_ioremap() implementation in
arch/x86/kernel/setup_32.c, I found that it is a duplication of
bt_ioremap() implementation in arch/x86/mm/ioremap_32.c. Both
implementations use set_fixmap(), so they can be used only after
paging_init().

The early_ioremap implementation provided in this patchset works as
follow:

- Enhances bt_ioremap, make it usable before paging_init() via a
dedicated PTE page.
- Rename bt_ioremap to early_ioremap

So I think maybe we should replace the early_ioremap() implementation in
PAT series with that of this series.



I did a quick scan over the patchset (not quite awake yet, so I may very 
well have missed something), but it looks like EFI (again!) is the only 
user of ioremapping before paging_init().  This makes me wonder if that 
code can't be restructured so that isn't necessary.


-hpa

--
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 -mm 0/3] i386 boot: replace boot_ioremap with enhanced bt_ioremap

2008-01-15 Thread Huang, Ying
On Tue, 2008-01-15 at 09:44 +0100, Ingo Molnar wrote:
> * Huang, Ying <[EMAIL PROTECTED]> wrote:
> 
> > This patchset replaces boot_ioremap with a enhanced version of 
> > bt_ioremap and renames the bt_ioremap to early_ioremap. This reduces 
> > 12k from .init.data segment and increases the size of memory that can 
> > be re-mapped before paging_init to 64k.
> 
> in latest x86.git#mm there's an early_ioremap() introduced as part of 
> the PAT series - available on both 32-bit and 64-bit. Could you take a 
> look at it and use that if it's OK for your purposes?

After checking the early_ioremap() implementation in
arch/x86/kernel/setup_32.c, I found that it is a duplication of
bt_ioremap() implementation in arch/x86/mm/ioremap_32.c. Both
implementations use set_fixmap(), so they can be used only after
paging_init().

The early_ioremap implementation provided in this patchset works as
follow:

- Enhances bt_ioremap, make it usable before paging_init() via a
dedicated PTE page.
- Rename bt_ioremap to early_ioremap

So I think maybe we should replace the early_ioremap() implementation in
PAT series with that of this series.

Best Regards,
Huang Ying

--
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 -mm 0/3] i386 boot: replace boot_ioremap with enhanced bt_ioremap

2008-01-15 Thread Ingo Molnar

* Huang, Ying <[EMAIL PROTECTED]> wrote:

> This patchset replaces boot_ioremap with a enhanced version of 
> bt_ioremap and renames the bt_ioremap to early_ioremap. This reduces 
> 12k from .init.data segment and increases the size of memory that can 
> be re-mapped before paging_init to 64k.

in latest x86.git#mm there's an early_ioremap() introduced as part of 
the PAT series - available on both 32-bit and 64-bit. Could you take a 
look at it and use that if it's OK for your purposes?

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 -mm 0/3] i386 boot: replace boot_ioremap with enhanced bt_ioremap

2008-01-15 Thread Ingo Molnar

* Huang, Ying [EMAIL PROTECTED] wrote:

 This patchset replaces boot_ioremap with a enhanced version of 
 bt_ioremap and renames the bt_ioremap to early_ioremap. This reduces 
 12k from .init.data segment and increases the size of memory that can 
 be re-mapped before paging_init to 64k.

in latest x86.git#mm there's an early_ioremap() introduced as part of 
the PAT series - available on both 32-bit and 64-bit. Could you take a 
look at it and use that if it's OK for your purposes?

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 -mm 0/3] i386 boot: replace boot_ioremap with enhanced bt_ioremap

2008-01-15 Thread Huang, Ying
On Tue, 2008-01-15 at 09:44 +0100, Ingo Molnar wrote:
 * Huang, Ying [EMAIL PROTECTED] wrote:
 
  This patchset replaces boot_ioremap with a enhanced version of 
  bt_ioremap and renames the bt_ioremap to early_ioremap. This reduces 
  12k from .init.data segment and increases the size of memory that can 
  be re-mapped before paging_init to 64k.
 
 in latest x86.git#mm there's an early_ioremap() introduced as part of 
 the PAT series - available on both 32-bit and 64-bit. Could you take a 
 look at it and use that if it's OK for your purposes?

After checking the early_ioremap() implementation in
arch/x86/kernel/setup_32.c, I found that it is a duplication of
bt_ioremap() implementation in arch/x86/mm/ioremap_32.c. Both
implementations use set_fixmap(), so they can be used only after
paging_init().

The early_ioremap implementation provided in this patchset works as
follow:

- Enhances bt_ioremap, make it usable before paging_init() via a
dedicated PTE page.
- Rename bt_ioremap to early_ioremap

So I think maybe we should replace the early_ioremap() implementation in
PAT series with that of this series.

Best Regards,
Huang Ying

--
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 -mm 0/3] i386 boot: replace boot_ioremap with enhanced bt_ioremap

2008-01-15 Thread H. Peter Anvin

Huang, Ying wrote:


After checking the early_ioremap() implementation in
arch/x86/kernel/setup_32.c, I found that it is a duplication of
bt_ioremap() implementation in arch/x86/mm/ioremap_32.c. Both
implementations use set_fixmap(), so they can be used only after
paging_init().

The early_ioremap implementation provided in this patchset works as
follow:

- Enhances bt_ioremap, make it usable before paging_init() via a
dedicated PTE page.
- Rename bt_ioremap to early_ioremap

So I think maybe we should replace the early_ioremap() implementation in
PAT series with that of this series.



I did a quick scan over the patchset (not quite awake yet, so I may very 
well have missed something), but it looks like EFI (again!) is the only 
user of ioremapping before paging_init().  This makes me wonder if that 
code can't be restructured so that isn't necessary.


-hpa

--
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 -mm 0/3] i386 boot: replace boot_ioremap with enhanced bt_ioremap

2008-01-15 Thread Ingo Molnar

* H. Peter Anvin [EMAIL PROTECTED] wrote:

 I did a quick scan over the patchset (not quite awake yet, so I may 
 very well have missed something), but it looks like EFI (again!) is 
 the only user of ioremapping before paging_init().  This makes me 
 wonder if that code can't be restructured so that isn't necessary.

i think that in general making access to unmapped memory a bit easier is 
generally a good robustness idea as ACPI could be impacted by it as 
well.

Fundamentally, paging_init() has obvious dependency on figuring out the 
memory setup of the box, and figuring out the memory setup means 
interpreting various data structures passed in by the BIOS - some of 
which might be in not yet mapped areas or iommu areas (if we have to do 
some early quirk). So having a robust implementation of ioremap_early() 
sounds like a definitive plus.

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 -mm 0/3] i386 boot: replace boot_ioremap with enhanced bt_ioremap

2008-01-15 Thread H. Peter Anvin

Ingo Molnar wrote:

* H. Peter Anvin [EMAIL PROTECTED] wrote:

I did a quick scan over the patchset (not quite awake yet, so I may 
very well have missed something), but it looks like EFI (again!) is 
the only user of ioremapping before paging_init().  This makes me 
wonder if that code can't be restructured so that isn't necessary.


i think that in general making access to unmapped memory a bit easier is 
generally a good robustness idea as ACPI could be impacted by it as 
well.


Fundamentally, paging_init() has obvious dependency on figuring out the 
memory setup of the box, and figuring out the memory setup means 
interpreting various data structures passed in by the BIOS - some of 
which might be in not yet mapped areas or iommu areas (if we have to do 
some early quirk). So having a robust implementation of ioremap_early() 
sounds like a definitive plus.




Fair enough.  If it's generally useful, I certainly have no objections.

-hpa
--
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 -mm 0/3] i386 boot: replace boot_ioremap with enhanced bt_ioremap

2008-01-15 Thread Ingo Molnar

* Huang, Ying [EMAIL PROTECTED] wrote:

  in latest x86.git#mm there's an early_ioremap() introduced as part 
  of the PAT series - available on both 32-bit and 64-bit. Could you 
  take a look at it and use that if it's OK for your purposes?
 
 After checking the early_ioremap() implementation in 
 arch/x86/kernel/setup_32.c, I found that it is a duplication of 
 bt_ioremap() implementation in arch/x86/mm/ioremap_32.c. Both 
 implementations use set_fixmap(), so they can be used only after 
 paging_init().
 
 The early_ioremap implementation provided in this patchset works as 
 follow:
 
 - Enhances bt_ioremap, make it usable before paging_init() via a
 dedicated PTE page.
 - Rename bt_ioremap to early_ioremap

 So I think maybe we should replace the early_ioremap() implementation 
 in PAT series with that of this series.

yep, agreed, that would be nice.

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/


[PATCH -mm 0/3] i386 boot: replace boot_ioremap with enhanced bt_ioremap

2008-01-14 Thread Huang, Ying
This patchset replaces boot_ioremap with a enhanced version of
bt_ioremap and renames the bt_ioremap to early_ioremap. This reduces
12k from .init.data segment and increases the size of memory that can
be re-mapped before paging_init to 64k.

This patchset is based on linux-2.6.24-rc5-mm1 +
efi-split-efi-tables-parsing-code-from-efi-runtime-service-support-code.patch.
It has been tested on i386 with PAE on/off.

Best Regards,
Huang Ying

--
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 -mm 0/3] i386 boot: replace boot_ioremap with enhanced bt_ioremap

2008-01-14 Thread Huang, Ying
This patchset replaces boot_ioremap with a enhanced version of
bt_ioremap and renames the bt_ioremap to early_ioremap. This reduces
12k from .init.data segment and increases the size of memory that can
be re-mapped before paging_init to 64k.

This patchset is based on linux-2.6.24-rc5-mm1 +
efi-split-efi-tables-parsing-code-from-efi-runtime-service-support-code.patch.
It has been tested on i386 with PAE on/off.

Best Regards,
Huang Ying

--
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/