Linux 3.3!

On March 18th, Linux 3.3 was released and it featured a number of interesting Xen related features.

  • Re-engineered how tools can perform hypercalls – by using a standard interface (/dev/xen/privcmd instead of using /proc/xen/privcmd)
  • Backends (netback, blkback) can now function in HVM mode. This means that a device driver domain can be in charge of a device (say network) and a subset of the network (netback). What is exciting about this it allows for security by isolation – so if one domain is compromised it does not affect the other domains. Both Qubes and NSA Research Center have been focusing on this functionality and it is exciting to see components of this goal taking shape!
  • My pet peeve: graphics not working. The Xen architecture makes an interesting sandbox for making drivers compatible with other platforms. This is due to the fact that the when device drivers DMA data, the “bus” address (so the address used on PCI chipsets) is different from the “physical” (the address used by the CPU) address. This mapping is common on other platforms besides x86 – SPARC, or PPC. The x86 architecture usually has a 1:1 mapping (so “phys” == “bus”) – and both nouveau and radeon drivers weren’t using th full gamma of the PCI API to take advantage of that. The TTM DMA pool driver does that and now PCI (example: ATI ES1000) and PCIe cards can function properly under Xen – the remaining piece is to hookup this to the AGP API, but it not clear if there is that much huge demand for that.
  • Thanks for the XenDoc day a lot of documentation was added to the kernel and the XenBus code was cleaned up.

Also some pretty serious bug fixes were put in:

  • A fix in the spinlock code: if you build the kernel for fewer than 256 CPUs corruption of the spinlock occurs and a crash will ensure.
  • We fixed a long-uptime bug when using the radeon or nouveau driver. The user would see: “ WARNING: at arch/x86/xen/mmu.c:475 xen_make_pte” and things started to mysteriously break.
  • Hardening of the XenBus code to deal with bad frontends.

That is it for now. The Linux 3.4 merge window has opened. Expect to see another blog post from in the near future, with detail on what will go in Linux 3.4. The good news is that some of these items have been requested by many of you for some time!

A thank you to the contributors of this release

Annie Li (7):

  • Annie Li (7):
  • xen/granttable: Introducing grant table V2 stucture
  • xen/granttable: Refactor some code
  • xen/granttable: Grant tables V2 implementation
  • xen/granttable: Keep code format clean
  • xen/granttable: Improve comments for function pointers
  • xen/granttable: Support sub-page grants
  • xen/granttable: Support transitive grants

Bastian Blank (5):

  • xen: Add privcmd device driver
  • xen: Add xenbus device driver
  • xen: Add xenbus_backend device
  • xen/privcmd: Remove unused support for arch specific privcmp mmap
  • xen/xenbus-frontend: Make error message more clear

Daniel De Graaf (10):

  • xen/gntalloc: Change gref_lock to a mutex
  • xen/gnt{dev,alloc}: reserve event channels for notify
  • xen/event: Add reference counting to event channels
  • xen/events: prevent calling evtchn_get on invalid channels
  • xen/gntalloc: release grant references on page free
  • xen/gntalloc: fix reference counts on multi-page mappings
  • xenbus: Support HVM backends
  • xenbus: Use grant-table wrapper functions
  • xen/grant-table: Support mappings required by blkback
  • xen/netback: Enable netback on HVM guests

David Vrabel (3):

  • xen: document balloon driver sysfs files
  • xen: document backend sysfs files
  • x86: xen: size struct xen_spinlock to always fit in arch_spinlock_t

Ian Campbell (3):

  • xen/xenbus: Reject replies with payload > XENSTORE_PAYLOAD_MAX.
  • xenbus: maximum buffer size is XENSTORE_PAYLOAD_MAX
  • xen/xenbus: don’t reimplement kvasprintf via a fixed size buffer

Jan Beulich (2):

  • Xen: consolidate and simplify struct xenbus_driver instantiation
  • xenbus_dev: add missing error check to watch handling

Jeremy Fitzhardinge (1):

  • Xen: update MAINTAINER info

Jerome Glisse (8):

  • drm/ttm: remove userspace backed ttm object support
  • drm/ttm: remove split btw highmen and lowmem page
  • drm/ttm: remove unused backend flags field
  • drm/ttm: use ttm put pages function to properly restore cache attribute
  • drm/ttm: test for dma_address array allocation failure
  • drm/ttm: merge ttm_backend and ttm_tt V5
  • drm/ttm: introduce callback for ttm_tt populate & unpopulate V4
  • ttm: fix agp since ttm tt rework

Julia Lawall (1):

  • xen-gntalloc: introduce missing kfree

Kay Sievers (1):

  • xen-balloon: convert sysdev_class to a regular subsystem

Konrad Rzeszutek Wilk (24):

  • xen/blk[front|back]: Squash blkif_request_rw and blkif_request_discard together
  • xen/blk[front|back]: Enhance discard support with secure erasing support.
  • xen/blkback: Move processing of BLKIF_OP_DISCARD from dispatch_rw_block_io
  • swiotlb: Expose swiotlb_nr_tlb function to modules
  • drm/ttm: provide dma aware ttm page pool code V9
  • drm/radeon/kms: enable the ttm dma pool if swiotlb is on V4
  • drm/nouveau: enable the ttm dma pool when swiotlb is active V3
  • xen/xenbus-frontend: Fix compile error with randconfig
  • xen/xenbus: Fix compile error – missing header for xen_initial_domain()
  • drm/ttm/dma: Only call set_pages_array_wb when the page is not in WB pool.
  • drm/ttm/dma: Fix accounting error when calling ttm_mem_global_free_page and don’t try to free freed pages.
  • x86/PCI: Expand the x86_msi_ops to have a restore MSIs.
  • xen/pciback: Move the PCI_DEV_FLAGS_ASSIGNED ops to the “[un|]bind”
  • xen/pciback: Fix “device has been assigned to X domain!” warning
  • xen/pciback: Expand the warning message to include domain id.
  • xen/mmu: Fix compile errors introduced by x86/memblock mismerge.
  • xen/balloon: Move the registration from device to subsystem.
  • ttm/dma: Remove the WARN() which is not useful.
  • xen/granttable: Disable grant v2 for HVM domains.
  • xen/bootup: During bootup suppress XENBUS: Unable to read cpu state
  • xen/smp: Fix CPU online/offline bug triggering a BUG: scheduling while atomic.
  • xen/pci[front|back]: Use %d instead of %1x for displaying PCI devfn.
  • xen/setup: Remove redundant filtering of PTE masks.
  • xen/pat: Disable PAT support for now.

Li Dongyang (1):

  • xen-blkback: convert hole punching to discard request on loop devices

Maxim Uvarov (1):

  • xen: Make XEN_MAX_DOMAIN_MEMORY have more sensible defaults

Stefano Stabellini (1):

  • xen pvhvm: do not remap pirqs onto evtchns if !xen_have_vector_callback

Tejun Heo (1):

  • memblock: Fix alloc failure due to dumb underflow protection in memblock_find_in_range_node()

Thomas Meyer (1):

  • xen-blkfront: Use kcalloc instead of kzalloc to allocate array

Tony Luck (1):

  • xen/ia64: fix build breakage because of conflicting u64 guest handles

Read more

Xen Project Announces Performance and Security Advancements with Release of 4.19
08/05/2024

New release marks significant enhancements in performance, security, and versatility across various architectures.  SAN FRANCISCO – July 31st, 2024 – The Xen Project, an open source project under the Linux Foundation, is proud to announce the release of Xen Project 4.19. This release marks a significant milestone in enhancing performance, security,

Upcoming Closure of Xen Project Colo Facility
07/10/2024

Dear Xen Community, We regret to inform you that the Xen Project is currently experiencing unexpected changes due to the sudden shutdown of our colocated (colo) data center facility by Synoptek. This incident is beyond our control and will impact the continuity of OSSTest (the gating Xen Project CI loop)

Xen Summit Talks Now Live on YouTube!
06/18/2024

Hello Xen Community! We have some thrilling news to share with you all. The highly anticipated talks from this year’s Xen Summit are now live on YouTube! Whether you attended the summit in person or couldn’t make it this time, you can now access all the insightful presentations

Get ready for Xen Summit 2024!
05/24/2024

With less than 2 weeks to go, are you ready? The Xen Project is gearing up for a summit full of discussions, collaboration and innovation. If you haven’t already done so – get involved by submitting a design session topic. Don’t worry if you can’t attend in person,