|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 2/2] xen/evtchn: optimize XSM ssid field
>>> On 20.03.14 at 16:29, Daniel De Graaf <dgdegra@xxxxxxxxxxxxx> wrote:
> When FLASK is the only enabled implementation of the XSM hooks in Xen,
> some of the abstractions required to handle multiple XSM providers are
> redundant and only produce unneeded overhead. This patch reduces the
> memory overhead of enabling XSM on event channels by replacing the
> untyped ssid pointer from struct evtchn with a union containing the
> contents of the structure. This avoids an additional heap allocation
> for every event channel, and on 64-bit systems, reduces the size of
> struct evtchn by 4 bytes. If an out-of-tree XSM module needs the full
> flexibility of the generic evtcnn ssid pointer, defining the symbol
> XSM_NEED_GENERIC_EVTCHN_SSID will include a suitable pointer field.
>
> This also cleans up the unused selinux_checkreqprot declaration left
> from the Linux port.
>
> Signed-off-by: Daniel De Graaf <dgdegra@xxxxxxxxxxxxx>
> Cc: Jan Beulich <jbeulich@xxxxxxxx>
> Cc: Keir Fraser <keir@xxxxxxx>
> ---
> Changes from v1:
> - Enclose the security server fields in a union to make supporting
> additional XSM modules that use this field less intrusive.
>
> xen/include/xen/sched.h | 16 +++++++++++++++-
> xen/xsm/flask/hooks.c | 37 ++++++-------------------------------
> xen/xsm/flask/include/objsec.h | 6 ------
> 3 files changed, 21 insertions(+), 38 deletions(-)
>
> diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
> index 00f0eba..d087e43 100644
> --- a/xen/include/xen/sched.h
> +++ b/xen/include/xen/sched.h
> @@ -100,8 +100,22 @@ struct evtchn
> u8 pending:1;
> u16 last_vcpu_id;
> u8 last_priority;
> +#ifdef XSM_ENABLE
> + union {
> +#ifdef XSM_NEED_GENERIC_EVTCHN_SSID
> + /* If an XSM module needs more space for its event channel context,
> + * this pointer stores the necessary data for the security server.
> + */
> + void* generic;
Coding style - both for the comment and the placement of the *
right above. But I think if I'm the one to commit this (pending
Keir's ack) I could take care of these if no other comments show
up that would make another revision necessary.
> +#endif
> #ifdef FLASK_ENABLE
> - void *ssid;
> + /* Inlining the contents of the structure for FLASK avoids unneeded
> + * allocations, and on 64-bit platforms with only FLASK enabled,
> + * reduces the size of struct evtchn.
> + */
Again.
With those adjustments
Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |