[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCHv1 3/4] spinlock: shrink struct lock_debug




On 18/12/15 16:58, Jan Beulich wrote:
On 18.12.15 at 15:09, <david.vrabel@xxxxxxxxxx> wrote:
--- a/xen/common/spinlock.c
+++ b/xen/common/spinlock.c
@@ -16,7 +16,7 @@ static atomic_t spin_debug __read_mostly = ATOMIC_INIT(0);
static void check_lock(struct lock_debug *debug)
  {
-    int irq_safe = !local_irq_is_enabled();
+    s16 irq_safe = !local_irq_is_enabled();
if ( unlikely(atomic_read(&spin_debug) <= 0) )
          return;
I can't figure out why this odd looking change is needed.

Jan



This patch shrinks struct lock_debug's irq_safe member. Since you end up with many instances of this embedded in other structures such as struct domain, this become a useful saving in memory. At one point, I had an issue with struct domain exceeding 4k, which caused trouble. Given the change to struct_lock debug, this local variable irq_safe, is compared with it, and used in cmpxchg with it it, and therefore should match type.

- Jenny

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.