[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3 21/23] xsplice: Add support for shadow variables
On 12.02.2016 19:05, Konrad Rzeszutek Wilk wrote: > From: Ross Lagerwall <ross.lagerwall@xxxxxxxxxx> > > Shadow variables are a piece of infrastructure to be used by xsplice > modules. They are used to attach a new piece of data to an existing > structure in memory. > > Signed-off-by: Ross Lagerwall <ross.lagerwall@xxxxxxxxxx> > --- > xen/common/Makefile | 1 + > xen/common/xsplice_shadow.c | 105 > ++++++++++++++++++++++++++++++++++++++++ > xen/include/xen/xsplice_patch.h | 39 +++++++++++++++ > 3 files changed, 145 insertions(+) > create mode 100644 xen/common/xsplice_shadow.c > create mode 100644 xen/include/xen/xsplice_patch.h > > diff --git a/xen/common/Makefile b/xen/common/Makefile > index a8ceaff..f4d54ad 100644 > --- a/xen/common/Makefile > +++ b/xen/common/Makefile > @@ -75,3 +75,4 @@ subdir-$(CONFIG_HAS_DEVICE_TREE) += libfdt > > obj-$(CONFIG_XSPLICE) += xsplice.o > obj-$(CONFIG_XSPLICE) += xsplice_elf.o > +obj-$(CONFIG_XSPLICE) += xsplice_shadow.o > diff --git a/xen/common/xsplice_shadow.c b/xen/common/xsplice_shadow.c > new file mode 100644 > index 0000000..619cdee > --- /dev/null > +++ b/xen/common/xsplice_shadow.c > @@ -0,0 +1,105 @@ > +#include <xen/init.h> > +#include <xen/kernel.h> > +#include <xen/lib.h> > +#include <xen/list.h> > +#include <xen/spinlock.h> > +#include <xen/xsplice_patch.h> > + > +#define SHADOW_SLOTS 256 > +struct hlist_head shadow_tbl[SHADOW_SLOTS]; Thinking about this more, how would a module using this global hash ever be unloadable again without leaking memory? For unloading you would need some iterator that walks all the dynamically created shadow elements and frees them. The simplest approach would be if each hotpatch would bring its own instance of the hash table (if it needs it). That would allow it to fully walk and release the hash content on its unload path. Martin Amazon Development Center Germany GmbH Berlin - Dresden - Aachen main office: Krausenstr. 38, 10117 Berlin Geschaeftsfuehrer: Dr. Ralf Herbrich, Christian Schlaeger Ust-ID: DE289237879 Eingetragen am Amtsgericht Charlottenburg HRB 149173 B _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |