Re: [PATCH v7 1/4] spinlock: A new lockref structure for lockless update of refcount

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

 



On 09/03/2013 03:09 PM, Linus Torvalds wrote:
On Tue, Sep 3, 2013 at 8:34 AM, Linus Torvalds
<torvalds@xxxxxxxxxxxxxxxxxxxx>  wrote:
I suspect the tty_ldisc_lock() could be made to go away if we care.
Heh. I just pulled the tty patches from Greg, and the locking has
changed completely.

It may actually fix your AIM7 test-case, because while the global
spinlock remains (it got renamed to "tty_ldiscs_lock" - there's an
added "s"), the common operations now take the per-tty lock to get the
ldisc for that tty, rather than that global spinlock (which just
protects the actual ldisk array now).

That said, I don't know what AIM7 really ends up doing, but your
profile seems to have every access through tty_ldisc_[de]ref() that
now uses only the per-tty lock. Of course, how much that helps ends up
depending on whether AIM7 uses lots of tty's or just one shared one.

Anyway, it might be worth testing my current -git tree.

                   Linus

The latest tty patches did work. The tty related spinlock contention is now completely gone. The short workload can now reach over 8M JPM which is the highest I have ever seen.

The perf profile was:

5.85%     reaim  reaim                 [.] mul_short
4.87%     reaim  [kernel.kallsyms]     [k] ebitmap_get_bit
4.72%     reaim  reaim                 [.] mul_int
4.71%     reaim  reaim                 [.] mul_long
2.67%     reaim  libc-2.12.so          [.] __random_r
2.64%     reaim  [kernel.kallsyms]     [k] lockref_get_not_zero
1.58%     reaim  [kernel.kallsyms]     [k] copy_user_generic_string
1.48%     reaim  [kernel.kallsyms]     [k] mls_level_isvalid
1.35%     reaim  [kernel.kallsyms]     [k] find_next_bit
1.23%     reaim  [kernel.kallsyms]     [k] system_call
1.21%     reaim  libc-2.12.so          [.] memcpy
1.19%     reaim  [kernel.kallsyms]     [k] _raw_spin_lock
1.06%     reaim  [kernel.kallsyms]     [k] avc_has_perm_flags
1.04%     reaim  libc-2.12.so          [.] __srandom_r
1.02%     reaim  reaim                 [.] newton_raphson
1.01%     reaim  [kernel.kallsyms]     [k] update_cfs_rq_blocked_load
0.98%     reaim  [kernel.kallsyms]     [k] fsnotify
0.94%     reaim  [kernel.kallsyms]     [k] avtab_search_node
0.91%     reaim  libm-2.12.so          [.] __sincos

I have a patch in linux-next that should eliminate ebitmap_get_bit, mls_leve_isvalid and find_next_bit from the list top once it is merged.

Regards,
Longman
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux