diff options
author | Julien Grall <julien.grall@citrix.com> | 2015-05-05 17:37:30 +0200 |
---|---|---|
committer | David Vrabel <david.vrabel@citrix.com> | 2015-10-23 15:20:38 +0200 |
commit | a001c9d95c4ea96589461d58e77c96416a303e2c (patch) | |
tree | 400b90c567d2fd0afefb6f8fe3fab107f0f3baf4 /drivers/xen/events/events_base.c | |
parent | xen/balloon: Don't rely on the page granularity is the same for Xen and Linux (diff) | |
download | linux-a001c9d95c4ea96589461d58e77c96416a303e2c.tar.xz linux-a001c9d95c4ea96589461d58e77c96416a303e2c.zip |
xen/events: fifo: Make it running on 64KB granularity
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>
Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Diffstat (limited to 'drivers/xen/events/events_base.c')
-rw-r--r-- | drivers/xen/events/events_base.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/xen/events/events_base.c b/drivers/xen/events/events_base.c index 6cd5e65c4aff..849500e4e14d 100644 --- a/drivers/xen/events/events_base.c +++ b/drivers/xen/events/events_base.c @@ -40,11 +40,11 @@ #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> |