20 Aug, 2015

2 commits


24 Apr, 2015

1 commit

  • Pull initial ACPI support for arm64 from Will Deacon:
    "This series introduces preliminary ACPI 5.1 support to the arm64
    kernel using the "hardware reduced" profile. We don't support any
    peripherals yet, so it's fairly limited in scope:

    - MEMORY init (UEFI)

    - ACPI discovery (RSDP via UEFI)

    - CPU init (FADT)

    - GIC init (MADT)

    - SMP boot (MADT + PSCI)

    - ACPI Kconfig options (dependent on EXPERT)

    ACPI for arm64 has been in development for a while now and hardware
    has been available that can boot with either FDT or ACPI tables. This
    has been made possible by both changes to the ACPI spec to cater for
    ARM-based machines (known as "hardware-reduced" in ACPI parlance) but
    also a Linaro-driven effort to get this supported on top of the Linux
    kernel. This pull request is the result of that work.

    These changes allow us to initialise the CPUs, interrupt controller,
    and timers via ACPI tables, with memory information and cmdline coming
    from EFI. We don't support a hybrid ACPI/FDT scheme. Of course,
    there is still plenty of work to do (a serial console would be nice!)
    but I expect that to happen on a per-driver basis after this core
    series has been merged.

    Anyway, the diff stat here is fairly horrible, but splitting this up
    and merging it via all the different subsystems would have been
    extremely painful. Instead, we've got all the relevant Acks in place
    and I've not seen anything other than trivial (Kconfig) conflicts in
    -next (for completeness, I've included my resolution below). Nearly
    half of the insertions fall under Documentation/.

    So, we'll see how this goes. Right now, it all depends on EXPERT and
    I fully expect people to use FDT by default for the immediate future"

    * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (31 commits)
    ARM64 / ACPI: make acpi_map_gic_cpu_interface() as void function
    ARM64 / ACPI: Ignore the return error value of acpi_map_gic_cpu_interface()
    ARM64 / ACPI: fix usage of acpi_map_gic_cpu_interface
    ARM64: kernel: acpi: honour acpi=force command line parameter
    ARM64: kernel: acpi: refactor ACPI tables init and checks
    ARM64: kernel: psci: let ACPI probe PSCI version
    ARM64: kernel: psci: factor out probe function
    ACPI: move arm64 GSI IRQ model to generic GSI IRQ layer
    ARM64 / ACPI: Don't unflatten device tree if acpi=force is passed
    ARM64 / ACPI: additions of ACPI documentation for arm64
    Documentation: ACPI for ARM64
    ARM64 / ACPI: Enable ARM64 in Kconfig
    XEN / ACPI: Make XEN ACPI depend on X86
    ARM64 / ACPI: Select ACPI_REDUCED_HARDWARE_ONLY if ACPI is enabled on ARM64
    clocksource / arch_timer: Parse GTDT to initialize arch timer
    irqchip: Add GICv2 specific ACPI boot support
    ARM64 / ACPI: Introduce ACPI_IRQ_MODEL_GIC and register device's gsi
    ACPI / processor: Make it possible to get CPU hardware ID via GICC
    ACPI / processor: Introduce phys_cpuid_t for CPU hardware ID
    ARM64 / ACPI: Parse MADT for SMP initialization
    ...

    Linus Torvalds
     

17 Apr, 2015

1 commit

  • Pull xen features and fixes from David Vrabel:

    - use a single source list of hypercalls, generating other tables etc.
    at build time.

    - add a "Xen PV" APIC driver to support >255 VCPUs in PV guests.

    - significant performance improve to guest save/restore/migration.

    - scsiback/front save/restore support.

    - infrastructure for multi-page xenbus rings.

    - misc fixes.

    * tag 'stable/for-linus-4.1-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
    xen/pci: Try harder to get PXM information for Xen
    xenbus_client: Extend interface to support multi-page ring
    xen-pciback: also support disabling of bus-mastering and memory-write-invalidate
    xen: support suspend/resume in pvscsi frontend
    xen: scsiback: add LUN of restored domain
    xen-scsiback: define a pr_fmt macro with xen-pvscsi
    xen/mce: fix up xen_late_init_mcelog() error handling
    xen/privcmd: improve performance of MMAPBATCH_V2
    xen: unify foreign GFN map/unmap for auto-xlated physmap guests
    x86/xen/apic: WARN with details.
    x86/xen: Provide a "Xen PV" APIC driver to support >255 VCPUs
    xen/pciback: Don't print scary messages when unsupported by hypervisor.
    xen: use generated hypercall symbols in arch/x86/xen/xen-head.S
    xen: use generated hypervisor symbols in arch/x86/xen/trace.c
    xen: synchronize include/xen/interface/xen.h with xen
    xen: build infrastructure for generating hypercall depending symbols
    xen: balloon: Use static attribute groups for sysfs entries
    xen: pcpu: Use static attribute groups for sysfs entry

    Linus Torvalds
     

26 Mar, 2015

1 commit

  • When ACPI is enabled on ARM64, XEN ACPI will also compiled
    into the kernel, but XEN ACPI is x86 dependent, so introduce
    CONFIG_XEN_ACPI to make it depend on x86 before XEN ACPI is
    functional on ARM64.

    CC: Julien Grall
    CC: Konrad Rzeszutek Wilk
    CC: Boris Ostrovsky
    CC: David Vrabel
    Acked-by: Stefano Stabellini
    Signed-off-by: Hanjun Guo
    Signed-off-by: Will Deacon

    Hanjun Guo
     

23 Mar, 2015

1 commit

  • Commit 054954eb051f35e74b75a566a96fe756015352c8 ("xen: switch to linear
    virtual mapped sparse p2m list") introduced a regression regarding to
    memory hotplug for a pv-domain: as the virtual space for the p2m list
    is allocated for the to be expected memory size of the domain only,
    hotplugged memory above that size will not be usable by the domain.

    Correct this by using a configurable size for the p2m list in case of
    memory hotplug enabled (default supported memory size is 512 GB for
    64 bit domains and 4 GB for 32 bit domains).

    Signed-off-by: Juergen Gross
    Cc: # 3.19+
    Reviewed-by: Daniel Kiper
    Signed-off-by: David Vrabel

    Juergen Gross
     

16 Mar, 2015

1 commit

  • Auto-translated physmap guests (arm, arm64 and x86 PVHVM/PVH) map and
    unmap foreign GFNs using the same method (updating the physmap).
    Unify the two arm and x86 implementations into one commont one.

    Note that on arm and arm64, the correct error code will be returned
    (instead of always -EFAULT) and map/unmap failure warnings are no
    longer printed. These changes are required if the foreign domain is
    paging (-ENOENT failures are expected and must be propagated up to the
    caller).

    Signed-off-by: David Vrabel
    Reviewed-by: Stefano Stabellini

    David Vrabel
     

23 Sep, 2014

1 commit

  • Introduces the Xen pvSCSI backend. With pvSCSI it is possible for a
    Xen domU to issue SCSI commands to a SCSI LUN assigned to that
    domU. The SCSI commands are passed to the pvSCSI backend in a driver
    domain (usually Dom0) which is owner of the physical device. This
    allows e.g. to use SCSI tape drives in a Xen domU.

    The code is taken from the pvSCSI implementation in Xen done by
    Fujitsu based on Linux kernel 2.6.18.

    Changes from the original version are:
    - port to upstream kernel
    - put all code in just one source file
    - adapt to Linux style guide
    - use target core infrastructure instead doing pure pass-through
    - enable module unloading
    - support SG-list in grant page(s)
    - support task abort
    - remove redundant struct backend
    - allocate resources dynamically
    - correct minor error in scsiback_fast_flush_area
    - free allocated resources in case of error during I/O preparation
    - remove CDB emulation, now handled by target core infrastructure

    Signed-off-by: Juergen Gross
    Reviewed-by: Nicholas Bellinger
    Signed-off-by: David Vrabel

    Juergen Gross
     

19 Jul, 2014

1 commit

  • This patch enables EFI usage under Xen dom0. Standard EFI Linux
    Kernel infrastructure cannot be used because it requires direct
    access to EFI data and code. However, in dom0 case it is not possible
    because above mentioned EFI stuff is fully owned and controlled
    by Xen hypervisor. In this case all calls from dom0 to EFI must
    be requested via special hypercall which in turn executes relevant
    EFI code in behalf of dom0.

    When dom0 kernel boots it checks for EFI availability on a machine.
    If it is detected then artificial EFI system table is filled.
    Native EFI callas are replaced by functions which mimics them
    by calling relevant hypercall. Later pointer to EFI system table
    is passed to standard EFI machinery and it continues EFI subsystem
    initialization taking into account that there is no direct access
    to EFI boot services, runtime, tables, structures, etc. After that
    system runs as usual.

    This patch is based on Jan Beulich and Tang Liang work.

    Signed-off-by: Jan Beulich
    Signed-off-by: Tang Liang
    Signed-off-by: Daniel Kiper
    Reviewed-by: David Vrabel
    Acked-by: Stefano Stabellini

    Daniel Kiper
     

23 Jan, 2014

1 commit

  • Pull Xen updates from Konrad Rzeszutek Wilk:
    "Two major features that Xen community is excited about:

    The first is event channel scalability by David Vrabel - we switch
    over from an two-level per-cpu bitmap of events (IRQs) - to an FIFO
    queue with priorities. This lets us be able to handle more events,
    have lower latency, and better scalability. Good stuff.

    The other is PVH by Mukesh Rathor. In short, PV is a mode where the
    kernel lets the hypervisor program page-tables, segments, etc. With
    EPT/NPT capabilities in current processors, the overhead of doing this
    in an HVM (Hardware Virtual Machine) container is much lower than the
    hypervisor doing it for us.

    In short we let a PV guest run without doing page-table, segment,
    syscall, etc updates through the hypervisor - instead it is all done
    within the guest container. It is a "hybrid" PV - hence the 'PVH'
    name - a PV guest within an HVM container.

    The major benefits are less code to deal with - for example we only
    use one function from the the pv_mmu_ops (which has 39 function
    calls); faster performance for syscall (no context switches into the
    hypervisor); less traps on various operations; etc.

    It is still being baked - the ABI is not yet set in stone. But it is
    pretty awesome and we are excited about it.

    Lastly, there are some changes to ARM code - you should get a simple
    conflict which has been resolved in #linux-next.

    In short, this pull has awesome features.

    Features:
    - FIFO event channels. Key advantages: support for over 100,000
    events (2^17), 16 different event priorities, improved fairness in
    event latency through the use of FIFOs.
    - Xen PVH support. "It’s a fully PV kernel mode, running with
    paravirtualized disk and network, paravirtualized interrupts and
    timers, no emulated devices of any kind (and thus no qemu), no BIOS
    or legacy boot — but instead of requiring PV MMU, it uses the HVM
    hardware extensions to virtualize the pagetables, as well as system
    calls and other privileged operations." (from "The
    Paravirtualization Spectrum, Part 2: From poles to a spectrum")

    Bug-fixes:
    - Fixes in balloon driver (refactor and make it work under ARM)
    - Allow xenfb to be used in HVM guests.
    - Allow xen_platform_pci=0 to work properly.
    - Refactors in event channels"

    * tag 'stable/for-linus-3.14-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: (52 commits)
    xen/pvh: Set X86_CR0_WP and others in CR0 (v2)
    MAINTAINERS: add git repository for Xen
    xen/pvh: Use 'depend' instead of 'select'.
    xen: delete new instances of __cpuinit usage
    xen/fb: allow xenfb initialization for hvm guests
    xen/evtchn_fifo: fix error return code in evtchn_fifo_setup()
    xen-platform: fix error return code in platform_pci_init()
    xen/pvh: remove duplicated include from enlighten.c
    xen/pvh: Fix compile issues with xen_pvh_domain()
    xen: Use dev_is_pci() to check whether it is pci device
    xen/grant-table: Force to use v1 of grants.
    xen/pvh: Support ParaVirtualized Hardware extensions (v3).
    xen/pvh: Piggyback on PVHVM XenBus.
    xen/pvh: Piggyback on PVHVM for grant driver (v4)
    xen/grant: Implement an grant frame array struct (v3).
    xen/grant-table: Refactor gnttab_init
    xen/grants: Remove gnttab_max_grant_frames dependency on gnttab_init.
    xen/pvh: Piggyback on PVHVM for event channels (v2)
    xen/pvh: Update E820 to work with PVH (v2)
    xen/pvh: Secondary VCPU bringup (non-bootup CPUs)
    ...

    Linus Torvalds
     

06 Jan, 2014

1 commit

  • Since c275a57f5ec3 "xen/balloon: Set balloon's initial state to number of
    existing RAM pages" the balloon driver appears to work fine on ARM as far as I
    can tell. Prior to that commit it was broken because on ARM RAM doesn't
    typically start at zero, effectively leaving a big MMIO hole at the start.
    This would cause the balloon driver to give away all of RAM at start of day,
    which is rather inconvenient.

    It was already enabled (or rather not excluded) on ARM64. The
    c1d15f5c8bc1170dafe16e988e55437245966dfe
    "xen/balloon: Seperate the auto-translate logic properly (v2)"
    added in the proper plumbing to work with ARM and PVH type guests.

    Signed-off-by: Ian Campbell
    Cc: Konrad Rzeszutek Wilk
    Cc: Boris Ostrovsky
    Cc: David Vrabel
    Acked-by: Stefano Stabellini
    [v2: Added the bit about PVH]
    Signed-off-by: Konrad Rzeszutek Wilk

    Ian Campbell
     

19 Dec, 2013

1 commit


02 Dec, 2013

1 commit


10 Oct, 2013

1 commit

  • Xen on arm and arm64 needs SWIOTLB_XEN: when running on Xen we need to
    program the hardware with mfns rather than pfns for dma addresses.
    Remove SWIOTLB_XEN dependency on X86 and PCI and make XEN select
    SWIOTLB_XEN on arm and arm64.

    At the moment always rely on swiotlb-xen, but when Xen starts supporting
    hardware IOMMUs we'll be able to avoid it conditionally on the presence
    of an IOMMU on the platform.

    Implement xen_create_contiguous_region on arm and arm64: for the moment
    we assume that dom0 has been mapped 1:1 (physical addresses == machine
    addresses) therefore we don't need to call XENMEM_exchange. Simply
    return the physical address as dma address.

    Initialize the xen-swiotlb from xen_early_init (before the native
    dma_ops are initialized), set xen_dma_ops to &xen_swiotlb_dma_ops.

    Signed-off-by: Stefano Stabellini

    Changes in v8:
    - assume dom0 is mapped 1:1, no need to call XENMEM_exchange.

    Changes in v7:
    - call __set_phys_to_machine_multi from xen_create_contiguous_region and
    xen_destroy_contiguous_region to update the P2M;
    - don't call XENMEM_unpin, it has been removed;
    - call XENMEM_exchange instead of XENMEM_exchange_and_pin;
    - set nr_exchanged to 0 before calling the hypercall.

    Changes in v6:
    - introduce and export xen_dma_ops;
    - call xen_mm_init from as arch_initcall.

    Changes in v4:
    - remove redefinition of DMA_ERROR_CODE;
    - update the code to use XENMEM_exchange_and_pin and XENMEM_unpin;
    - add a note about hardware IOMMU in the commit message.

    Changes in v3:
    - code style changes;
    - warn on XENMEM_put_dma_buf failures.

    Stefano Stabellini
     

31 Jul, 2013

1 commit


15 May, 2013

2 commits


12 May, 2013

1 commit

  • …nux/kernel/git/konrad/xen

    Pull Xen bug-fixes from Konrad Rzeszutek Wilk:
    - More fixes in the vCPU PVHVM hotplug path.
    - Add more documentation.
    - Fix various ARM related issues in the Xen generic drivers.
    - Updates in the xen-pciback driver per Bjorn's updates.
    - Mask the x2APIC feature for PV guests.

    * tag 'stable/for-linus-3.10-rc0-tag-two' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
    xen/pci: Used cached MSI-X capability offset
    xen/pci: Use PCI_MSIX_TABLE_BIR, not PCI_MSIX_FLAGS_BIRMASK
    xen: clear IRQ_NOAUTOEN and IRQ_NOREQUEST
    xen: mask x2APIC feature in PV
    xen: SWIOTLB is only used on x86
    xen/spinlock: Fix check from greater than to be also be greater or equal to.
    xen/smp/pvhvm: Don't point per_cpu(xen_vpcu, 33 and larger) to shared_info
    xen/vcpu: Document the xen_vcpu_info and xen_vcpu
    xen/vcpu/pvhvm: Fix vcpu hotplugging hanging.

    Linus Torvalds
     

08 May, 2013

1 commit

  • Enabling SWIOTLB_XEN on ARM results in build errors because the
    underlying SWIOTLB is only available on X86:

    drivers/xen/swiotlb-xen.c: In function 'is_xen_swiotlb_buffer':
    drivers/xen/swiotlb-xen.c:105:2: error: implicit declaration of function 'mfn_to_local_pfn

    Cc: Konrad Rzeszutek Wilk
    Acked-by: Stefano Stabellini
    Signed-off-by: Arnd Bergmann
    Signed-off-by: Konrad Rzeszutek Wilk

    Arnd Bergmann
     

01 May, 2013

1 commit

  • Allow Xen tmem shim to be built/loaded as a module. Xen self-ballooning
    and frontswap-selfshrinking are now also "lazily" initialized when the
    Xen tmem shim is loaded as a module, unless explicitly disabled by
    module parameters.

    Note runtime dependency disallows loading if cleancache/frontswap lazy
    initialization patches are not present.

    If built-in (not built as a module), the original mechanism of enabling
    via a kernel boot parameter is retained, but this should be considered
    deprecated.

    Note that module unload is explicitly not yet supported.

    [v1: Removed the [CLEANCACHE|FRONTSWAP]_HAS_LAZY_INIT ifdef]
    [v2: Squashed the xen/tmem: Remove the subsys call patch in]
    [akpm@linux-foundation.org: fix build (disable_frontswap_selfshrinking undeclared)]
    Signed-off-by: Dan Magenheimer
    Signed-off-by: Konrad Rzeszutek Wilk
    Signed-off-by: Bob Liu
    Cc: Wanpeng Li
    Cc: Andor Daam
    Cc: Florian Schmaus
    Cc: Minchan Kim
    Cc: Stefan Hengelein
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dan Magenheimer
     

28 Mar, 2013

1 commit

  • With the Xen ACPI stub code (CONFIG_XEN_STUB=y) enabled, the power
    C and P states are no longer uploaded to the hypervisor.

    The reason is that the Xen CPU hotplug code: xen-acpi-cpuhotplug.c
    and the xen-acpi-stub.c register themselves as the "processor" type object.

    That means the generic processor (processor_driver.c) stops
    working and it does not call (acpi_processor_add) which populates the

    per_cpu(processors, pr->id) = pr;

    structure. The 'pr' is gathered from the acpi_processor_get_info function
    which does the job of finding the C-states and figuring out PBLK address.

    The 'processors->pr' is then later used by xen-acpi-processor.c (the one that
    uploads C and P states to the hypervisor). Since it is NULL, we end
    skip the gathering of _PSD, _PSS, _PCT, etc and never upload the power
    management data.

    The end result is that enabling the CONFIG_XEN_STUB in the build means that
    xen-acpi-processor is not working anymore.

    This temporary patch fixes it by marking the XEN_STUB driver as
    BROKEN until this can be properly fixed.

    CC: jinsong.liu@intel.com
    Signed-off-by: Konrad Rzeszutek Wilk

    Konrad Rzeszutek Wilk
     

20 Feb, 2013

3 commits

  • This patch implement real Xen ACPI cpu hotplug driver as module.
    When loaded, it replaces Xen stub driver.

    For booting existed cpus, the driver enumerates them.
    For hotadded cpus, which added at runtime and notify OS via
    device or container event, the driver is invoked to add them,
    parsing cpu information, hypercalling to Xen hypervisor to add
    them, and finally setting up new /sys interface for them.

    Signed-off-by: Liu Jinsong
    Signed-off-by: Konrad Rzeszutek Wilk

    Liu Jinsong
     
  • This patch implements real Xen acpi memory hotplug driver as module.
    When loaded, it replaces Xen stub driver.

    When an acpi memory device hotadd event occurs, it notifies OS and
    invokes notification callback, adding related memory device and parsing
    memory information, finally hypercall to xen hypervisor to add memory.

    Signed-off-by: Liu Jinsong
    Signed-off-by: Konrad Rzeszutek Wilk

    Liu Jinsong
     
  • This patch create a file (xen-stub.c) for Xen stub drivers.
    Xen stub drivers are used to reserve space for Xen drivers, i.e.
    memory hotplug and cpu hotplug, and to block native drivers loaded,
    so that real Xen drivers can be modular and loaded on demand.

    This patch is specific for Xen memory hotplug (other Xen logic
    can add stub drivers on their own). The xen stub driver will
    occupied earlier via subsys_initcall (than native memory hotplug
    driver via module_init and so blocking native). Later real Xen
    memory hotplug logic will unregister the stub driver and register
    itself to take effect on demand.

    Signed-off-by: Liu Jinsong
    Signed-off-by: Konrad Rzeszutek Wilk

    Liu Jinsong
     

29 Nov, 2012

1 commit

  • The ARM platform has no concept of PVMMU and therefor no
    HYPERVISOR_update_va_mapping et al. Allow this code to be compiled out
    when not required.

    In some similar situations (e.g. P2M) we have defined dummy functions
    to avoid this, however I think we can/should draw the line at dummying
    out actual hypercalls.

    Signed-off-by: Ian Campbell
    Signed-off-by: Konrad Rzeszutek Wilk

    Ian Campbell
     

10 Oct, 2012

1 commit

  • * The XEN_BALLOON code requires the balloon infrastructure that is not
    getting built on ARM.

    * The tmem hypercall is not available on ARM

    * ARMv6 does not support cmpxchg on 16-bit words that are used in the
    Xen grant table code, so we must ensure that Xen support is only
    built on ARMv7-only kernels not combined ARMv6/v7 kernels.

    * sys-hypervisor.c needs to include linux/err.h in order to use the
    IS_ERR/PTR_ERR/ERR_PTR family of functions.

    Signed-off-by: Arnd Bergmann
    Acked-by: Ian Campbell
    Cc: Stefano Stabellini
    Cc: Konrad Rzeszutek Wilk
    Cc: Jeremy Fitzhardinge
    Cc: xen-devel@lists.xensource.com

    Arnd Bergmann
     

20 Jul, 2012

1 commit

  • When MCA error occurs, it would be handled by Xen hypervisor first,
    and then the error information would be sent to initial domain for logging.

    This patch gets error information from Xen hypervisor and convert
    Xen format error into Linux format mcelog. This logic is basically
    self-contained, not touching other kernel components.

    By using tools like mcelog tool users could read specific error information,
    like what they did under native Linux.

    To test follow directions outlined in Documentation/acpi/apei/einj.txt

    Acked-and-tested-by: Borislav Petkov
    Signed-off-by: Ke, Liping
    Signed-off-by: Jiang, Yunhong
    Signed-off-by: Jeremy Fitzhardinge
    Signed-off-by: Liu, Jinsong
    Signed-off-by: Konrad Rzeszutek Wilk

    Liu, Jinsong
     

23 May, 2012

1 commit

  • Pull trivial updates from Jiri Kosina:
    "As usual, it's mostly typo fixes, redundant code elimination and some
    documentation updates."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (57 commits)
    edac, mips: don't change code that has been removed in edac/mips tree
    xtensa: Change mail addresses of Hannes Weiner and Oskar Schirmer
    lib: Change mail address of Oskar Schirmer
    net: Change mail address of Oskar Schirmer
    arm/m68k: Change mail address of Sebastian Hess
    i2c: Change mail address of Oskar Schirmer
    net: Fix tcp_build_and_update_options comment in struct tcp_sock
    atomic64_32.h: fix parameter naming mismatch
    Kconfig: replace "--- help ---" with "---help---"
    c2port: fix bogus Kconfig "default no"
    edac: Fix spelling errors.
    qla1280: Remove redundant NULL check before release_firmware() call
    remoteproc: remove redundant NULL check before release_firmware()
    qla2xxx: Remove redundant NULL check before release_firmware() call.
    aic94xx: Get rid of redundant NULL check before release_firmware() call
    tehuti: delete redundant NULL check before release_firmware()
    qlogic: get rid of a redundant test for NULL before call to release_firmware()
    bna: remove redundant NULL test before release_firmware()
    tg3: remove redundant NULL test before release_firmware() call
    typhoon: get rid of redundant conditional before all to release_firmware()
    ...

    Linus Torvalds
     

08 May, 2012

1 commit


16 Apr, 2012

1 commit


24 Mar, 2012

1 commit

  • The functions: "acpi_processor_*" sound like they depend on CONFIG_ACPI_PROCESSOR
    but in reality they are exposed when CONFIG_CPU_FREQ=[y|m]. As such
    update the Kconfig to have this dependency and fix compile issues:

    ERROR: "acpi_processor_unregister_performance" [drivers/xen/xen-acpi-processor.ko] undefined!
    ERROR: "acpi_processor_notify_smm" [drivers/xen/xen-acpi-processor.ko] undefined!
    ERROR: "acpi_processor_register_performance" [drivers/xen/xen-acpi-processor.ko] undefined!
    ERROR: "acpi_processor_preregister_performance" [drivers/xen/xen-acpi-processor.ko] undefined!

    Note: We still need the CONFIG_ACPI
    Reported-by: Randy Dunlap
    Signed-off-by: Konrad Rzeszutek Wilk

    Konrad Rzeszutek Wilk
     

21 Mar, 2012

1 commit

  • With patch "xen/cpufreq: Disable the cpu frequency scaling drivers
    from loading." we do not have to worry about said drivers loading
    themselves before the xen-acpi-processor driver. Hence we can remove
    the default selection (=y if CPU frequency drivers were built-in, or
    =m if CPU frequency drivers were built as modules), and just
    select =m for the default case.

    Signed-off-by: Konrad Rzeszutek Wilk

    Konrad Rzeszutek Wilk
     

15 Mar, 2012

1 commit

  • This driver solves three problems:
    1). Parse and upload ACPI0007 (or PROCESSOR_TYPE) information to the
    hypervisor - aka P-states (cpufreq data).
    2). Upload the the Cx state information (cpuidle data).
    3). Inhibit CPU frequency scaling drivers from loading.

    The reason for wanting to solve 1) and 2) is such that the Xen hypervisor
    is the only one that knows the CPU usage of different guests and can
    make the proper decision of when to put CPUs and packages in proper states.
    Unfortunately the hypervisor has no support to parse ACPI DSDT tables, hence it
    needs help from the initial domain to provide this information. The reason
    for 3) is that we do not want the initial domain to change P-states while the
    hypervisor is doing it as well - it causes rather some funny cases of P-states
    transitions.

    For this to work, the driver parses the Power Management data and uploads said
    information to the Xen hypervisor. It also calls acpi_processor_notify_smm()
    to inhibit the other CPU frequency scaling drivers from being loaded.

    Everything revolves around the 'struct acpi_processor' structure which
    gets updated during the bootup cycle in different stages. At the startup, when
    the ACPI parser starts, the C-state information is processed (processor_idle)
    and saved in said structure as 'power' element. Later on, the CPU frequency
    scaling driver (powernow-k8 or acpi_cpufreq), would call the the
    acpi_processor_* (processor_perflib functions) to parse P-states information
    and populate in the said structure the 'performance' element.

    Since we do not want the CPU frequency scaling drivers from loading
    we have to call the acpi_processor_* functions to parse the P-states and
    call "acpi_processor_notify_smm" to stop them from loading.

    There is also one oddity in this driver which is that under Xen, the
    physical online CPU count can be different from the virtual online CPU count.
    Meaning that the macros 'for_[online|possible]_cpu' would process only
    up to virtual online CPU count. We on the other hand want to process
    the full amount of physical CPUs. For that, the driver checks if the ACPI IDs
    count is different from the APIC ID count - which can happen if the user
    choose to use dom0_max_vcpu argument. In such a case a backup of the PM
    structure is used and uploaded to the hypervisor.

    [v1-v2: Initial RFC implementations that were posted]
    [v3: Changed the name to passthru suggested by Pasi Kärkkäinen ]
    [v4: Added vCPU != pCPU support - aka dom0_max_vcpus support]
    [v5: Cleaned up the driver, fix bug under Athlon XP]
    [v6: Changed the driver to a CPU frequency governor]
    [v7: Jan Beulich suggestion to make it a cpufreq scaling driver
    made me rework it as driver that inhibits cpufreq scaling driver]
    [v8: Per Jan's review comments, fixed up the driver]
    [v9: Allow to continue even if acpi_processor_preregister_perf.. fails]
    Signed-off-by: Konrad Rzeszutek Wilk

    Konrad Rzeszutek Wilk
     

17 Dec, 2011

1 commit

  • Access to arbitrary hypercalls is currently provided via xenfs. This
    adds a standard character device to handle this. The support in xenfs
    remains for backward compatibility and uses the device driver code.

    Signed-off-by: Bastian Blank
    Acked-by: Ian Campbell
    Signed-off-by: Konrad Rzeszutek Wilk

    Bastian Blank
     

29 Sep, 2011

1 commit

  • Xen PVHVM needs xen-platform-pci, on the other hand xen-platform-pci is
    useless in any other cases.
    Therefore remove the XEN_PLATFORM_PCI config option and compile
    xen-platform-pci built-in if XEN_PVHVM is selected.

    Changes to v1:

    - remove xen-platform-pci.o and just use platform-pci.o since it is not
    externally visible anymore.

    Signed-off-by: Stefano Stabellini
    Signed-off-by: Konrad Rzeszutek Wilk

    Stefano Stabellini
     

04 Aug, 2011

1 commit


26 Jul, 2011

1 commit

  • Memory hotplug support for Xen balloon driver. It should be mentioned
    that hotplugged memory is not onlined automatically. It should be onlined
    by user through standard sysfs interface.

    Memory could be hotplugged in following steps:

    1) dom0: xl mem-max
    where is >= requested memory size,

    2) dom0: xl mem-set
    where is requested memory size; alternatively memory
    could be added by writing proper value to
    /sys/devices/system/xen_memory/xen_memory0/target or
    /sys/devices/system/xen_memory/xen_memory0/target_kb on dumU,

    3) domU: for i in /sys/devices/system/memory/memory*/state; do \
    [ "`cat "$i"`" = offline ] && echo online > "$i"; done

    Memory could be onlined automatically on domU by adding following line to
    udev rules:

    SUBSYSTEM=="memory", ACTION=="add", RUN+="/bin/sh -c '[ -f /sys$devpath/state ] && echo online > /sys$devpath/state'"

    In that case step 3 should be omitted.

    Signed-off-by: Daniel Kiper
    Acked-by: Konrad Rzeszutek Wilk
    Cc: Ian Campbell
    Cc: Jeremy Fitzhardinge
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Kiper
     

21 Jul, 2011

1 commit

  • * stable/xen-pciback-0.6.3:
    xen/pciback: Have 'passthrough' option instead of XEN_PCIDEV_BACKEND_PASS and XEN_PCIDEV_BACKEND_VPCI
    xen/pciback: Remove the DEBUG option.
    xen/pciback: Drop two backends, squash and cleanup some code.
    xen/pciback: Print out the MSI/MSI-X (PIRQ) values
    xen/pciback: Don't setup an fake IRQ handler for SR-IOV devices.
    xen: rename pciback module to xen-pciback.
    xen/pciback: Fine-grain the spinlocks and fix BUG: scheduling while atomic cases.
    xen/pciback: Allocate IRQ handler for device that is shared with guest.
    xen/pciback: Disable MSI/MSI-X when reseting a device
    xen/pciback: guest SR-IOV support for PV guest
    xen/pciback: Register the owner (domain) of the PCI device.
    xen/pciback: Cleanup the driver based on checkpatch warnings and errors.
    xen/pciback: xen pci backend driver.

    Conflicts:
    drivers/xen/Kconfig

    Konrad Rzeszutek Wilk
     

20 Jul, 2011

2 commits