Re: Help in DSM design

From: Davide Libenzi (dlibenzi@maticad.it)
Date: Sat Mar 04 2000 - 08:42:15 EST

  • Next message: Daniel Roesen: "Re: Problem&patch: Linux 2.2.15pre13 linux/fs/dquot.c warning"

    On Sat, 04 Mar 2000, Manfred Spraul wrote:
    > Larry McVoy wrote:
    > >
    > > Cache line miss, around 200ns.
    >
    > I know this is of-topic, but I read that cache-line ping-pong is a
    > problem for our spinlocks. Has anyone tried to move the spinlocks (*)
    > into a special page, and mark that page as "write-trough"?
    >
    > It should be possible to add a new ELF section, and mark the global
    > spinlocks with __spinlockdata [like __initdata].
    >
    > (*) I know that many spinlocks are located within other structures, but
    > some (important) spinlocks are not:
    >
    > * kernel_flag
    > * tasklist_lock
    > * runqueue_lock
    > * global_bh_lock
    > * pagecache_lock
    > * pagemap_lru_lock
    > * inode_lock
    > * lru_list_lock
    > * hash_table_lock
    > * console_lock
    > * kmap_lock
    > * semaphore_lock [i386]
    > * tlbstate_lock [i386]

    I think that can be a good idea coz it avoid the probability that two spinlock
    fall into the same cacheline.

    union align_lock {
            spinlock_t lock;
            char filler[CACHE_LINE_SIZE];
    };

    union align_lock locks[PAGE_SIZE / sizeof(CACHE_LINE_SIZE)];

    enum locks_ids {
            lck_kernel,
            lck_tasklist,
            ...
    };

    Davide.

    -- 
    Feel free, feel Debian !
    

    - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/



    This archive was generated by hypermail 2b29 : Sat Mar 04 2000 - 07:53:47 EST