WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-merge

[Xen-merge] Re: Integration into mainline kernel

Here is my first take at what to do with the i386 header files. If hg
supports any notion of moving (I'm not aware of any), not all of the
suggested actions can be carried out solely by submitting patches. Also,
some cleanup on the merge tree (use of CONFIG_ARCH_XEN, CONFIG_XEN) may
be desirable first (so that it becomes consistent). Thus I still need to
know in what way carrying out the (acceptable to you part of the)
suggested changes is supposed to happen:

include/asm-xen/xen-public -> include/xen/public (or include/xen)

include/asm-xen/*.h -> include/xen/

include/asm-xen/linux-public -> include/linux/xen

include/asm-i386/mach-xen/asm/agp.h
- merge into include/asm-i386/agp.h

include/asm-i386/mach-xen/asm/bug.h
- merge into include/asm-i386/bug.h

include/asm-i386/mach-xen/asm/desc.h
- use cpu_gdt_table like mainline (plus page alignment; is having
  multiple CPUs' GDTs in a single page acceptable to the hypervisor?)
- use xen_set_ldt as expansion of set_ldt_desc
- merge into include/asm-i386/desc.h
- conditionalize dangerous constructs (load_LDT_desc etc.)

include/asm-i386/mach-xen/asm/dma-mapping.h
- include/asm-i386/mach-xen/asm/dma-mapping.h ->
  include/asm-x86_64/mach-xen/asm/ (copy, minor cleanup to remove
  32-bit conditional)
- include/asm-i386/dma-mapping.h ->
  include/asm-i386/mach-default/mach_dma.h
- include/asm-i386/mach-xen/asm/dma-mapping.h ->
  include/asm-i386/mach-xen/mach_dma.h (minor cleanup to remove 64-bit
  conditional)
- just reference include/asm-i386/mach-*/mach_dma.h from
  include/asm-i386/dma-mapping.h
- create include/asm-i386/mach-xen/mach_dma.h

include/asm-i386/mach-xen/asm/fixmap.h
- merge into include/asm-i386/fixmap.h (Can any of the fixmaps
actually
  live at machine addresses beyond 4G? If not, use standard
  __set_fixmap. If yes [grant tables, shared info?], define maddr_t
  generally.)
- Can't FIX_ACPI_RSDP_PAGE be replaced by use of FIX_ISAMAP + n?

include/asm-i386/mach-xen/asm/floppy.h
- reduce delta to original file
- merge into include/asm-i386/floppy.h unless delta still too large,
  in which case use include/asm-i386/mach-*/mach_floppy.h approach

include/asm-i386/mach-xen/asm/highmem.h
- merge into include/asm-i386/highmem.h
- map generic kmap_atomic_pte to kmap_atomic

include/asm-i386/mach-xen/asm/hw_irq.h
- merge into include/asm-i386/hw_irq.h

include/asm-i386/mach-xen/asm/hyper*.h -> include/asm-i386/hyper*.h
- perhaps conditionalize whole contents upon CONFIG_XEN/CONFIG_X86_XEN

include/asm-i386/mach-xen/asm/io.h
- whether merging is appropriate needs to be discussed; an alternative
  would be to break out the *_to_* translations (into a new
  include/asm-i386/mach-*/mach_xlat.h)
- What is __UNSAFE_IO__?

include/asm-i386/mach-xen/asm/kmap_types.h
- merge into include/asm-i386/kmap_types.h, possibly even without
  conditionals

include/asm-i386/mach-xen/asm/mmu.h
- merge into include/asm-i386/mmu.h

include/asm-i386/mach-xen/asm/mmu_context.h
- separate out switch_mm and lazy-TLB changes into
  include/asm-i386/mach-*/mach_mmu.h
- merge into include/asm-i386/mmu_context.h

include/asm-i386/mach-xen/asm/page.h
- move mach <-> phys and mach <-> virt conversions as well as the
  MAXMEM and the LOAD_OFFSET override (which really should go away) to
  include/asm-i386/mach-xen/mach_xlat.h
- move arch_free_page, scrub_pages, alloc_zeroed_user_highpage,
  pte/pmd/pgd handling, and MAXMEM to
  include/asm-i386/mach-xen/mach_page.h
- split out alloc_zeroed_user_highpage and pte/pmd/pgd handling from
  include/asm-i386/page.h to include/asm-i386/mach-default/mach_page.h

include/asm-i386/mach-xen/asm/param.h
- delete

include/asm-i386/mach-xen/asm/pci.h
- merge into include/asm-i386/pci.h

include/asm-i386/mach-xen/asm/pgalloc.h
- merge into include/asm-i386/pgalloc.h unless conditionals are
  unacceptable

include/asm-i386/mach-xen/asm/pgtable.h
- generally use kmap_atomic_pte for pte_offset_map*
- split out ptep_set_access_flags and io_remap_pfn_range to
  include/asm-i386/mach-*/mach_pgtable.h
- move ptep_establish and other Xen additions to
  include/asm-i386/mach-xen/mach_pgtable.h

include/asm-i386/mach-xen/asm/pgtable-2level.h
- split out (originals of) customizations to
  include/asm-i386/mach-*/mach_pgtab2l.h

include/asm-i386/mach-xen/asm/pgtable-3level.h
- BUG()/panic() in pfn_pmd() needs attention from whoever put it there
- split out (originals of) customizations to
  include/asm-i386/mach-*/mach_pgtab3l.h

include/asm-i386/mach-xen/asm/pgtable-?level-defs.h
- merge into include/asm-i386/pgtable-?level-defs.h
- possibly replace HAVE_SHARED_KERNEL_PMD by CONFIG_XEN/CONFIG_X86_XEN

include/asm-i386/mach-xen/asm/processor.h
- break out set_in_cr4, get_debugreg, set_debugreg, and set_iopl_mask
  to include/asm-i386/mach-*/mach_processor.h
- move cur_pgd to include/asm-i386/mach-xen/mach_processor.h
- define do_stack_switch in include/asm-i386/mach-*/mach_processor.h
  and use it in load_esp0

include/asm-i386/mach-xen/asm/ptrace.h
- merge into include/asm-i386/mach-xen/asm/ptrace.h, perhaps defining
  USER_MODE_MASK (probably in include/asm-i386/mach-*/mach_mode.h)
  to use for the user_mode* macros and maybe elsewhere (assembly?).

include/asm-i386/mach-xen/asm/scatterlist.h
- merge into include/asm-i386/scatterlist.h

include/asm-i386/mach-xen/asm/segment.h
- define KERNEL_RPL in include/asm-i386/mach-*/mach_mode.h (see above)
  and use it for __KERNEL_CS and __KERNEL_DS

include/asm-i386/mach-xen/asm/setup.h
- in the shape it currently is just merge into
include/asm-i386/setup.h
- creation of include/asm-i386/mach-*/mach_setup.h or conditionalizing
  everything that's not valid in a para-virtualized kernel would
  probably be better (safer) long-term
- What is the 'unsigned long long' override for PFN_PHYS good for (and
  if for anything, why isn't standard Linux in need of this in PAE
  mode)?

include/asm-i386/mach-xen/asm/smp.h
- merge into include/asm-i386/smp.h, perhaps also #define-ing
  cpu_callout_map to cpu_possible_map

include/asm-i386/mach-xen/asm/spinlock.h
- merge into include/asm-i386/spinlock.h, perhaps simplifying the
  cli/sti removal by defining extra string constants

include/asm-i386/mach-xen/asm/swiotlb.h -> include/asm-i386/swiotlb.h
- perhaps conditionalize all declarations upon CONFIG_SWIOTLB

include/asm-i386/mach-xen/asm/synch_bitops.h
- don't use ; to separate lock prefix (only / or blank are proper
  syntax)
- replace "q" constraint on word/long/quad cmpxchg with "r" (mainline
  change)
- include/asm-i386/mach-xen/asm/synch_bitops.h ->
  include/asm-x86_64/mach-xen/asm/ (copy, minor cleanup to remove
  32-bit conditional, maybe use 64-bit ops where useful)
- include/asm-i386/mach-xen/asm/synch_bitops.h ->
  include/asm-i386/synch_bitops.h (minor cleanup to remove 64-bit
  conditional)

include/asm-i386/mach-xen/asm/system.h
- use LOCK_PREFIX instead of LOCK (reverting [incomplete]
  SMP_ALTERNATIVES changes) for consistency with mainline
- merge into include/asm-i386/system.h, conditionalizing dangerous
  (illegal) constructs like control register writes (or, if that is
  unacceptable, move all conflicts into
  include/asm-i386/mach-*/mach_system.h)

include/asm-i386/mach-xen/asm/tlbflush.h
- move all conflicts into include/asm-i386/mach-*/mach_tlbflush.h

include/asm-i386/mach-xen/asm/vga.h
- generally use isa_bus_to_virt in include/asm-i386/vga.h
- delete

Jan

_______________________________________________
Xen-merge mailing list
Xen-merge@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-merge

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-merge] Re: Integration into mainline kernel, Jan Beulich <=