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

3 commits

  • …N_PCIDEV_BACKEND_VPCI

    .. compile options. This way the user can decide during runtime whether they
    want the default 'vpci' (virtual pci passthrough) or where the PCI devices
    are passed in without any BDF renumbering. The option 'passthrough' allows
    the user to toggle the it from 0 (vpci) to 1 (passthrough).

    Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>

    Konrad Rzeszutek Wilk
     
  • The latter is easily fixed - by the developer compiling the
    module with -DDEBUG. And during runtime - the loglvl provides
    quite a lot of useful data.

    Signed-off-by: Konrad Rzeszutek Wilk

    Konrad Rzeszutek Wilk
     
  • This is the host side counterpart to the frontend driver in
    drivers/pci/xen-pcifront.c. The PV protocol is also implemented by
    frontend drivers in other OSes too, such as the BSDs.

    The PV protocol is rather simple. There is page shared with the guest,
    which has the 'struct xen_pci_sharedinfo' embossed in it. The backend
    has a thread that is kicked every-time the structure is changed and
    based on the operation field it performs specific tasks:

    XEN_PCI_OP_conf_[read|write]:
    Read/Write 0xCF8/0xCFC filtered data. (conf_space*.c)
    Based on which field is probed, we either enable/disable the PCI
    device, change power state, read VPD, etc. The major goal of this
    call is to provide a Physical IRQ (PIRQ) to the guest.

    The PIRQ is Xen hypervisor global IRQ value irrespective of the IRQ
    is tied in to the IO-APIC, or is a vector. For GSI type
    interrupts, the PIRQ==GSI holds. For MSI/MSI-X the
    PIRQ value != Linux IRQ number (thought PIRQ==vector).

    Please note, that with Xen, all interrupts (except those level shared ones)
    are injected directly to the guest - there is no host interaction.

    XEN_PCI_OP_[enable|disable]_msi[|x] (pciback_ops.c)
    Enables/disables the MSI/MSI-X capability of the device. These operations
    setup the MSI/MSI-X vectors for the guest and pass them to the frontend.

    When the device is activated, the interrupts are directly injected in the
    guest without involving the host.

    XEN_PCI_OP_aer_[detected|resume|mmio|slotreset]: In case of failure,
    perform the appropriate AER commands on the guest. Right now that is
    a cop-out - we just kill the guest.

    Besides implementing those commands, it can also

    - hide a PCI device from the host. When booting up, the user can specify
    xen-pciback.hide=(1:0:0)(BDF..) so that host does not try to use the
    device.

    The driver was lifted from linux-2.6.18.hg tree and fixed up
    so that it could compile under v3.0. Per suggestion from Jesse Barnes
    moved the driver to drivers/xen/xen-pciback.

    Signed-off-by: Konrad Rzeszutek Wilk
    Signed-off-by: Jeremy Fitzhardinge

    Konrad Rzeszutek Wilk
     

09 Jul, 2011

2 commits

  • …nel/git/djm/tmem into stable/drivers

    * 'xen-tmem-selfballoon-v8' of git://git.kernel.org/pub/scm/linux/kernel/git/djm/tmem:
    xen: tmem: self-ballooning and frontswap-selfshrinking

    Konrad Rzeszutek Wilk
     
  • This patch introduces two in-kernel drivers for Xen transcendent memory
    ("tmem") functionality that complement cleancache and frontswap. Both
    use control theory to dynamically adjust and optimize memory utilization.
    Selfballooning controls the in-kernel Xen balloon driver, targeting a goal
    value (vm_committed_as), thus pushing less frequently used clean
    page cache pages (through the cleancache code) into Xen tmem where
    Xen can balance needs across all VMs residing on the physical machine.
    Frontswap-selfshrinking controls the number of pages in frontswap,
    driving it towards zero (effectively doing a partial swapoff) when
    in-kernel memory pressure subsides, freeing up RAM for other VMs.

    More detail is provided in the header comment of xen-selfballooning.c.

    Signed-off-by: Dan Magenheimer

    [v8: konrad.wilk@oracle.com: set default enablement depending on frontswap]
    [v7: konrad.wilk@oracle.com: fix capitalization and punctuation in comments]
    [v6: fix frontswap-selfshrinking initialization]
    [v6: konrad.wilk@oracle.com: fix init pr_infos; add comments about swap]
    [v5: konrad.wilk@oracle.com: add NULL to attr list; move inits up to decls]
    [v4: dkiper@net-space.pl: use strict_strtoul plus a few syntactic nits]
    [v3: konrad.wilk@oracle.com: fix potential divides-by-zero]
    [v3: konrad.wilk@oracle.com: add many more comments, fix nits]
    [v2: rebased to linux-3.0-rc1]
    [v2: Ian.Campbell@citrix.com: reorganize as new file (xen-selfballoon.c)]
    [v2: dkiper@net-space.pl: proper access to vm_committed_as]
    [v2: dkiper@net-space.pl: accounting fixes]
    Cc: Jan Beulich
    Cc: Jeremy Fitzhardinge
    Cc:

    Dan Magenheimer
     

18 Jun, 2011

1 commit


16 Feb, 2011

1 commit


15 Feb, 2011

1 commit

  • This allows a userspace application to allocate a shared page for
    implementing inter-domain communication or device drivers. These
    shared pages can be mapped using the gntdev device or by the kernel
    in another domain.

    Signed-off-by: Daniel De Graaf
    Signed-off-by: Konrad Rzeszutek Wilk

    Daniel De Graaf
     

14 Jan, 2011

2 commits

  • * 'stable/gntdev' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
    xen/p2m: Fix module linking error.
    xen p2m: clear the old pte when adding a page to m2p_override
    xen gntdev: use gnttab_map_refs and gnttab_unmap_refs
    xen: introduce gnttab_map_refs and gnttab_unmap_refs
    xen p2m: transparently change the p2m mappings in the m2p override
    xen/gntdev: Fix circular locking dependency
    xen/gntdev: stop using "token" argument
    xen: gntdev: move use of GNTMAP_contains_pte next to the map_op
    xen: add m2p override mechanism
    xen: move p2m handling to separate file
    xen/gntdev: add VM_PFNMAP to vma
    xen/gntdev: allow usermode to map granted pages
    xen: define gnttab_set_map_op/unmap_op

    Fix up trivial conflict in drivers/xen/Kconfig

    Linus Torvalds
     
  • * 'stable/platform-pci-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
    xen-platform: Fix compile errors if CONFIG_PCI is not enabled.
    xen: rename platform-pci module to xen-platform-pci.
    xen-platform: use PCI interfaces to request IO and MEM resources.

    Linus Torvalds
     

13 Jan, 2011

1 commit


12 Jan, 2011

1 commit

  • The gntdev driver allows usermode to map granted pages from other
    domains. This is typically used to implement a Xen backend driver
    in user mode.

    Signed-off-by: Gerd Hoffmann
    Signed-off-by: Stefano Stabellini
    Signed-off-by: Jeremy Fitzhardinge
    Signed-off-by: Konrad Rzeszutek Wilk

    Gerd Hoffmann
     

06 Jan, 2011

4 commits


18 Oct, 2010

2 commits


13 Aug, 2010

1 commit

  • * 'stable/xen-swiotlb-0.8.6' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
    x86: Detect whether we should use Xen SWIOTLB.
    pci-swiotlb-xen: Add glue code to setup dma_ops utilizing xen_swiotlb_* functions.
    swiotlb-xen: SWIOTLB library for Xen PV guest with PCI passthrough.
    xen/mmu: inhibit vmap aliases rather than trying to clear them out
    vmap: add flag to allow lazy unmap to be disabled at runtime
    xen: Add xen_create_contiguous_region
    xen: Rename the balloon lock
    xen: Allow unprivileged Xen domains to create iomap pages
    xen: use _PAGE_IOMAP in ioremap to do machine mappings

    Fix up trivial conflicts (adding both xen swiotlb and xen pci platform
    driver setup close to each other) in drivers/xen/{Kconfig,Makefile} and
    include/xen/xen-ops.h

    Linus Torvalds
     

30 Jul, 2010

1 commit


27 Jul, 2010

1 commit

  • This patchset:

    PV guests under Xen are running in an non-contiguous memory architecture.

    When PCI pass-through is utilized, this necessitates an IOMMU for
    translating bus (DMA) to virtual and vice-versa and also providing a
    mechanism to have contiguous pages for device drivers operations (say DMA
    operations).

    Specifically, under Xen the Linux idea of pages is an illusion. It
    assumes that pages start at zero and go up to the available memory. To
    help with that, the Linux Xen MMU provides a lookup mechanism to
    translate the page frame numbers (PFN) to machine frame numbers (MFN)
    and vice-versa. The MFN are the "real" frame numbers. Furthermore
    memory is not contiguous. Xen hypervisor stitches memory for guests
    from different pools, which means there is no guarantee that PFN==MFN
    and PFN+1==MFN+1. Lastly with Xen 4.0, pages (in debug mode) are
    allocated in descending order (high to low), meaning the guest might
    never get any MFN's under the 4GB mark.

    Signed-off-by: Konrad Rzeszutek Wilk
    Acked-by: Jeremy Fitzhardinge
    Cc: FUJITA Tomonori
    Cc: Albert Herranz
    Cc: Ian Campbell

    Konrad Rzeszutek Wilk
     

23 Jul, 2010

1 commit

  • Add the xen pci platform device driver that is responsible
    for initializing the grant table and xenbus in PV on HVM mode.
    Few changes to xenbus and grant table are necessary to allow the delayed
    initialization in HVM mode.
    Grant table needs few additional modifications to work in HVM mode.

    The Xen PCI platform device raises an irq every time an event has been
    delivered to us. However these interrupts are only delivered to vcpu 0.
    The Xen PCI platform interrupt handler calls xen_hvm_evtchn_do_upcall
    that is a little wrapper around __xen_evtchn_do_upcall, the traditional
    Xen upcall handler, the very same used with traditional PV guests.

    When running on HVM the event channel upcall is never called while in
    progress because it is a normal Linux irq handler (and we cannot switch
    the irq chip wholesale to the Xen PV ones as we are running QEMU and
    might have passed in PCI devices), therefore we cannot be sure that
    evtchn_upcall_pending is 0 when returning.
    For this reason if evtchn_upcall_pending is set by Xen we need to loop
    again on the event channels set pending otherwise we might loose some
    event channel deliveries.

    Signed-off-by: Stefano Stabellini
    Signed-off-by: Sheng Yang
    Signed-off-by: Jeremy Fitzhardinge

    Stefano Stabellini
     

07 Mar, 2010

1 commit

  • Currently the xen support drivers are displayed in the main Device Drivers
    menu of the config tools instead of in their own sub-menu, so move them to
    their own sub-menu, like the rest of the driver world uses.

    This keeps the main Device Drivers menu from becoming messy.

    Signed-off-by: Randy Dunlap
    Cc: Jeremy Fitzhardinge
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

08 Apr, 2009

1 commit

  • * commit 'origin/master': (4825 commits)
    Fix build errors due to CONFIG_BRANCH_TRACER=y
    parport: Use the PCI IRQ if offered
    tty: jsm cleanups
    Adjust path to gpio headers
    KGDB_SERIAL_CONSOLE check for module
    Change KCONFIG name
    tty: Blackin CTS/RTS
    Change hardware flow control from poll to interrupt driven
    Add support for the MAX3100 SPI UART.
    lanana: assign a device name and numbering for MAX3100
    serqt: initial clean up pass for tty side
    tty: Use the generic RS485 ioctl on CRIS
    tty: Correct inline types for tty_driver_kref_get()
    splice: fix deadlock in splicing to file
    nilfs2: support nanosecond timestamp
    nilfs2: introduce secondary super block
    nilfs2: simplify handling of active state of segments
    nilfs2: mark minor flag for checkpoint created by internal operation
    nilfs2: clean up sketch file
    nilfs2: super block operations fix endian bug
    ...

    Conflicts:
    arch/x86/include/asm/thread_info.h
    arch/x86/lguest/boot.c
    drivers/xen/manage.c

    Jeremy Fitzhardinge
     

31 Mar, 2009

3 commits

  • …n/xenfs' and 'for-linus/xen/sys-hypervisor' into for-linus/xen/master

    * for-linus/xen/dev-evtchn:
    xen/dev-evtchn: clean up locking in evtchn
    xen: export ioctl headers to userspace
    xen: add /dev/xen/evtchn driver
    xen: add irq_from_evtchn

    * for-linus/xen/xenbus:
    xen/xenbus: export xenbus_dev_changed
    xen: use device model for suspending xenbus devices
    xen: remove suspend_cancel hook

    * for-linus/xen/xenfs:
    xen: add "capabilities" file

    * for-linus/xen/sys-hypervisor:
    xen: drop kexec bits from /sys/hypervisor since kexec isn't implemented yet
    xen/sys/hypervisor: change writable_pt to features
    xen: add /sys/hypervisor support

    Conflicts:
    drivers/xen/Makefile

    Jeremy Fitzhardinge
     
  • Adds support for Xen info under /sys/hypervisor. Taken from Novell 2.6.27
    backport tree.

    Signed-off-by: Jeremy Fitzhardinge

    Jeremy Fitzhardinge
     
  • This driver is used by application which wish to receive notifications
    from the hypervisor or other guests via Xen's event channel
    mechanism. In particular it is used by the xenstore daemon in domain
    0.

    Signed-off-by: Ian Campbell
    Signed-off-by: Jeremy Fitzhardinge

    Ian Campbell
     

30 Mar, 2009

1 commit


09 Jan, 2009

1 commit

  • The xenfs filesystem exports various interfaces to usermode. Initially
    this exports a file to allow usermode to interact with xenbus/xenstore.

    Traditionally this appeared in /proc/xen. Rather than extending procfs,
    this patch adds a backward-compat mountpoint on /proc/xen, and provides
    a xenfs filesystem which can be mounted there.

    Signed-off-by: Alex Zeffertt
    Signed-off-by: Jeremy Fitzhardinge
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alex Zeffertt
     

25 Apr, 2008

1 commit

  • The balloon driver allows memory to be dynamically added or removed from the domain,
    in order to allow host memory to be balanced between multiple domains.

    This patch introduces the Xen balloon driver, though it currently only
    allows a domain to be shrunk from its initial size (and re-grown back to
    that size). A later patch will add the ability to grow a domain beyond
    its initial size.

    Signed-off-by: Jeremy Fitzhardinge
    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner

    Jeremy Fitzhardinge