]> xenbits.xensource.com Git - people/julieng/linux-arm.git/commitdiff
xen/events: fifo: Make it running on 64KB granularity
authorJulien Grall <julien.grall@citrix.com>
Tue, 5 May 2015 15:37:30 +0000 (16:37 +0100)
committerJulien Grall <julien.grall@citrix.com>
Mon, 28 Sep 2015 11:07:25 +0000 (12:07 +0100)
Only use the first 4KB of the page to store the events channel info. It
means that we will waste 60KB every time we allocate page for:
     * control block: a page is allocating per CPU
     * event array: a page is allocating everytime we need to expand it

I think we can reduce the memory waste for the 2 areas by:

    * control block: sharing between multiple vCPUs. Although it will
    require some bookkeeping in order to not free the page when the CPU
    goes offline and the other CPUs sharing the page still there

    * event array: always extend the array event by 64K (i.e 16 4K
    chunk). That would require more care when we fail to expand the
    event channel.

Signed-off-by: Julien Grall <julien.grall@citrix.com>
Reviewed-by: David Vrabel <david.vrabel@citrix.com>
Reviewed-by: Stefano Stabellini <stefano.stabellini@citrix.com>
drivers/xen/events/events_base.c
drivers/xen/events/events_fifo.c

index 95a4fdb5eef9d909155e063cd5b6c786f70f9ba1..176b204a589b59217ce1244cc79638035adcbd4d 100644 (file)
 #include <asm/idle.h>
 #include <asm/io_apic.h>
 #include <asm/xen/pci.h>
-#include <xen/page.h>
 #endif
 #include <asm/sync_bitops.h>
 #include <asm/xen/hypercall.h>
 #include <asm/xen/hypervisor.h>
+#include <xen/page.h>
 
 #include <xen/xen.h>
 #include <xen/hvm.h>
index 1d4baf56c36bfc5abefb4d0701c0eb92553b7a68..e3e9e3d46d1bf55028cf4a7902fa72b494fb3ce6 100644 (file)
@@ -54,7 +54,7 @@
 
 #include "events_internal.h"
 
-#define EVENT_WORDS_PER_PAGE (PAGE_SIZE / sizeof(event_word_t))
+#define EVENT_WORDS_PER_PAGE (XEN_PAGE_SIZE / sizeof(event_word_t))
 #define MAX_EVENT_ARRAY_PAGES (EVTCHN_FIFO_NR_CHANNELS / EVENT_WORDS_PER_PAGE)
 
 struct evtchn_fifo_queue {