21 Oct, 2006

2 commits

  • I wrote a patch to avoid redundant memory hot-add call at boot time. This
    was cause of strange fail message of memory hotplug like "ACPI: add_memory
    failed". Memory is recognized by early boot code with EFI/E820.

    But, if DSDT describes memory devices for them, then hot-add code is called
    for already recognized memory, and it shows fail messages with -EEXIST.
    So, sys admin will misunderstand this message as something wrong by it.

    This patch avoids them by preventing redundant hot-add call until
    completion of driver initialization.

    [akpm@osdl.org: cleanups]
    Signed-off-by: Yasunori Goto
    Cc: "Brown, Len"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yasunori Goto
     
  • I suppose this message seems quite useless except debugging. It just shows
    "Hotplug Mem Device". System admin can't know anything by this message.
    So, I would like to change it to KERN_DEBUG.

    Signed-off-by: Yasunori Goto
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yasunori Goto
     

01 Oct, 2006

1 commit

  • In cases where the acpi memory-add event does not containe the pxm (node)
    infomation allow the driver to look up node info based on the address. The
    acpi_get_node call returns -1 if it can't decode the pxm info, this causes
    add_memory to panic. acpi_get_node would have to decode the resource from the
    handle (a lenghty proposition). This seems to be the cleanist point to
    interject the hook.

    [kamezawa.hiroyu@jp.fujitsu.com: build fixes]
    [y-goto@jp.fujitsu.com: build fixes]
    Signed-off-by: Keith Mannthey
    Cc: KAMEZAWA Hiroyuki
    Cc: Andi Kleen
    Signed-off-by: KAMEZAWA Hiroyuki
    Signed-off-by: Yasunori Goto
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Keith Mannthey
     

16 Aug, 2006

1 commit

  • This is to remove noisy useless message at boot. The message is a ton of
    "ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device"

    In my emulation, number of memory devices are not so many (only 6), but,
    this messages are displayed 114 times.

    It is showed by acpi_memory_register_notify_handler() which is called by
    acpi_walk_namespace().

    acpi_walk_namespace() parses all of ACPI's namespace and execute
    acpi_memory_register_notify_handler(). So, it is called for all of the
    device which is defined in namespace. If the parsing device is not memory,
    acpi_memhotplug ignores it due to "no match" and will parse next device.
    This is normal route, not an exception.

    Signed-off-by: Yasunori Goto
    Signed-off-by: Andrew Morton
    Signed-off-by: Len Brown

    Yasunori Goto
     

06 Aug, 2006

2 commits

  • both of acpi_memory_enable_device() and acpi_memory_add_device() may evaluate
    _CRS method.

    We should avoid evaluate device's resource twice if we could get it
    successfully in past.

    Signed-off-by: KAMEZWA Hiroyuki
    Cc: Keith Mannthey
    Cc: Yasunori Goto
    Cc: Dave Hansen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KAMEZAWA Hiroyuki
     
  • add_memory() does all necessary check to avoid collision. then, acpi layer
    doesn't have to check region by itself.

    (*) pfn_valid() just returns page struct is valid or not. It returns 0
    if a section has been already added even is ioresource is not added.
    ioresource collision check in mm/memory_hotplug.c can do more precise
    collistion check.
    added enabled bit check just for sanity check..

    Signed-off-by: KAMEZAWA Hiroyuki
    Cc: Keith Mannthey
    Cc: Yasunori Goto
    Cc: Dave Hansen
    Cc: "Brown, Len"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KAMEZAWA Hiroyuki
     

02 Jul, 2006

2 commits


30 Jun, 2006

6 commits


28 Jun, 2006

5 commits

  • This is to find node id from acpi's handle of memory_device in DSDT. _PXM for
    the new node can be found by acpi_get_pxm() by using new memory's handle. So,
    node id can be found by pxm_to_nid_map[].

    This patch becomes simpler than v2 of node hot-add patch.
    Because old add_memory() function doesn't have node id parameter.
    So, kernel must find its handle by physical address via DSDT again.
    But, v3 just give node id to add_memory() now.

    Signed-off-by: Yasunori Goto
    Cc: Dave Hansen
    Cc: "Brown, Len"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yasunori Goto
     
  • Change the name of old add_memory() to arch_add_memory. And use node id to
    get pgdat for the node at NODE_DATA().

    Note: Powerpc's old add_memory() is defined as __devinit. However,
    add_memory() is usually called only after bootup.
    I suppose it may be redundant. But, I'm not well known about powerpc.
    So, I keep it. (But, __meminit is better at least.)

    Signed-off-by: Yasunori Goto
    Cc: Dave Hansen
    Cc: "Brown, Len"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yasunori Goto
     
  • …oid redundant call add_memory)

    When acpi_memory_device_init() is called at boottime to register struct
    memory acpi_memory_device, acpi_bus_add() are called via
    acpi_driver_attach().

    But it also calls ops->start() function. It is called even if the memory
    blocks are initialized at early boottime. In this case add_memory() return
    -EEXIST, and the memory blocks becomes INVALID state even if it is normal.

    This is patch to avoid calling add_memory() for already available memory.

    [akpm@osdl.org: coding cleanups]
    Signed-off-by: Yasunori Goto <y-goto@jp.fujitsu.com>
    Cc: "Brown, Len" <len.brown@intel.com>
    Cc: Dave Hansen <haveblue@us.ibm.com>
    Signed-off-by: Andrew Morton <akpm@osdl.org>
    Signed-off-by: Linus Torvalds <torvalds@osdl.org>

    Yasunori Goto
     
  • …gister start func for memory device)

    This is a patch to call add_memroy() when notify reaches for new node's add
    event.

    When new node is added, notify of ACPI reaches container device which means
    the node.

    Container device driver calls acpi_bus_scan() to find and add belonging
    devices (which means cpu, memory and so on). Its function calls add and
    start function of belonging devices's driver.

    Howevever, current memory hotplug driver just register add function to
    create sysfs file for its memory. But, acpi_memory_enable_device() is not
    called because it is considered just the case that notify reaches memory
    device directly. So, if notify reaches container device nothing can call
    add_memory().

    This is a patch to create start function which calls add_memory().
    add_memory() can be called by this when notify reaches container device.

    [akpm@osdl.org: coding cleanups]
    Signed-off-by: Yasunori Goto <y-goto@jp.fujitsu.com>
    Cc: "Brown, Len" <len.brown@intel.com>
    Cc: Dave Hansen <haveblue@us.ibm.com>
    Signed-off-by: Andrew Morton <akpm@osdl.org>
    Signed-off-by: Linus Torvalds <torvalds@osdl.org>

    Yasunori Goto
     
  • Current acpi memory hotplug just looks into the first entry of resources in
    _CRS. But, _CRS can contain plural resources. So, if _CRS contains plural
    resoureces, acpi memory hot add cannot add all memory.

    With this patch, acpi memory hotplug can deal with Memory Device, whose
    _CRS contains plural resources.

    Tested on ia64 memory hotplug test envrionment (not emulation, uses alpha
    version firmware which supports dynamic reconfiguration of NUMA.)

    Note: Microsoft's Windows Server 2003 requires big (>4G)resoureces to be
    divided into small (
    Signed-off-by: KAMEZAWA Hiroyuki
    Cc: "Brown, Len"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KAMEZAWA Hiroyuki
     

27 Jun, 2006

3 commits


02 Apr, 2006

1 commit

  • Address space descriptors contain _MIN, _MAX, and _LEN. _MIN and _MAX are
    the bounds within which the region can be moved (this is clarified in Table
    6-38 of the ACPI 3.0 spec). We should use _LEN to determine the size of
    the region, not _MAX - _MIN + 1.

    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Andrew Morton
    Signed-off-by: Len Brown

    Bjorn Helgaas
     

07 Jan, 2006

1 commit

  • drivers/acpi/acpi_memhotplug.c: In function `acpi_memory_get_device_resources':
    drivers/acpi/acpi_memhotplug.c:101: error: structure has no member named `attribute'
    drivers/acpi/acpi_memhotplug.c:103: error: structure has no member named `attribute'
    drivers/acpi/acpi_memhotplug.c: In function `acpi_memory_disable_device':
    drivers/acpi/acpi_memhotplug.c:253: warning: unused variable `attr'

    Signed-off-by: Andrew Morton
    Signed-off-by: Len Brown

    KAMEZAWA Hiroyuki
     

10 Dec, 2005

1 commit

  • Completed a major overhaul of the Resource Manager code -
    specifically, optimizations in the area of the AML/internal
    resource conversion code. The code has been optimized to
    simplify and eliminate duplicated code, CPU stack use has
    been decreased by optimizing function parameters and local
    variables, and naming conventions across the manager have
    been standardized for clarity and ease of maintenance (this
    includes function, parameter, variable, and struct/typedef
    names.)

    All Resource Manager dispatch and information tables have
    been moved to a single location for clarity and ease of
    maintenance. One new file was created, named "rsinfo.c".

    The ACPI return macros (return_ACPI_STATUS, etc.) have
    been modified to guarantee that the argument is
    not evaluated twice, making them less prone to macro
    side-effects. However, since there exists the possibility
    of additional stack use if a particular compiler cannot
    optimize them (such as in the debug generation case),
    the original macros are optionally available. Note that
    some invocations of the return_VALUE macro may now cause
    size mismatch warnings; the return_UINT8 and return_UINT32
    macros are provided to eliminate these. (From Randy Dunlap)

    Implemented a new mechanism to enable debug tracing for
    individual control methods. A new external interface,
    acpi_debug_trace(), is provided to enable this mechanism. The
    intent is to allow the host OS to easily enable and disable
    tracing for problematic control methods. This interface
    can be easily exposed to a user or debugger interface if
    desired. See the file psxface.c for details.

    acpi_ut_callocate() will now return a valid pointer if a
    length of zero is specified - a length of one is used
    and a warning is issued. This matches the behavior of
    acpi_ut_allocate().

    Signed-off-by: Bob Moore
    Signed-off-by: Len Brown

    Bob Moore
     

30 Oct, 2005

1 commit

  • This basically keeps up from having to extern __kmalloc_section_memmap().

    The vaddr_in_vmalloc_area() helper could go in a vmalloc header, but that
    header gets hard to work with, because it needs some arch-specific macros.
    Just stick it in here for now, instead of creating another header.

    Signed-off-by: Dave Hansen
    Signed-off-by: Lion Vollnhals
    Signed-off-by: Jiri Slaby
    Signed-off-by: Yasunori Goto
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Hansen
     

05 Aug, 2005

1 commit


17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds