• Linux内核机制—percpu_rwsem Hello


    一、相关资料

    1. kernel-5.10/Documentation/locking/percpu-rw-semaphore.rst

    percpu rw 信号量是一种新的读写信号量设计,针对读取锁定进行了优化。

    传统的读写信号量的问题在于,当多个内核读取锁时,包含信号量的cache-line在内核的 L1 缓存之间弹跳,导致性能下降。

    锁定读取速度非常快,它使用 RCU,并且避免了锁定和解锁路径中的任何原子指令。 另一方面,写入锁定非常昂贵,它调用 synchronize_rcu() 可能需要数百毫秒。

    锁是用“struct percpu_rw_semaphore”类型声明的。 锁被初始化为 percpu_init_rwsem,它在成功时返回 0,在分配失败时返回 -ENOMEM。必须使用 percpu_free_rwsem 释放锁以避免内存泄漏。

    使用 percpu_down_read 和 percpu_up_read 锁定读取,使用 percpu_down_write 和 percpu_up_write 锁定写入。

    使用 RCU 优化 rw-lock 的想法是由 Eric Dumazet <eric.dumazet@gmail.com>。代码由 Mikulas Patocka <mpatocka@redhat.com> 编写

    2. 目前内核中使用的位置还不多

    mm/mmu_notifier.c
    drivers/bluetooth/hci_uart.h
    fs/ext4/ext4.h
    include/linux/fs.h
    include/linux/mmu_notifier.h
    include/linux/cgroup-defs.h

    TODO:

  • 相关阅读:
    几种开源工作流引擎的简单比较(转)
    ExecuteScalar
    机房重构---我们“重构”出了什么?
    薏米红豆粥功效及做法介绍
    Mean Shift具体介绍
    linux fork函数浅析
    html的下拉框的几个基本使用方法
    Readprocessmemory使用方法
    配置Log4j(非常具体)
    【Linux】linux经常使用基本命令
  • 原文地址:https://www.cnblogs.com/hellokitty2/p/16363483.html
Copyright © 2020-2023  润新知