Linux kernel 如何在每个条目的列表中删除元素

Linux kernel 如何在每个条目的列表中删除元素,linux-kernel,Linux Kernel,我对每个条目使用列表,在循环中我想从列表中删除一个元素。如果没有每个条目的列表,我怎么做 我看到过去每个安全rcu都有一个宏列表。为什么会被移除?还有别的选择吗 从RCU列表的视图中,所有线程分为2组: 读者 修饰语 一次,该列表可由多个读卡器和单个修饰符访问 读者应使用\u rcu原语进行列表遍历 如果有多个修改器,则应通过锁或其他同步方式保护其访问 因此,为每个安全rcu设置列表\u是无用的: 如果您的线程是一个修改器,那么其他线程不能同时修改列表。所以,\u rcu不需要保护,修饰符可

我对每个条目使用列表,在循环中我想从列表中删除一个元素。如果没有每个条目的列表,我怎么做

  • 我看到过去每个安全rcu都有一个宏列表。为什么会被移除?还有别的选择吗


  • 从RCU列表的视图中,所有线程分为2组:

    • 读者
    • 修饰语
    一次,该列表可由多个读卡器单个修饰符访问

    读者应使用
    \u rcu
    原语进行列表遍历

    如果有多个修改器,则应通过锁或其他同步方式保护其访问

    因此,为每个安全rcu设置
    列表\u是无用的:

  • 如果您的线程是一个修改器,那么其他线程不能同时修改列表。所以,
    \u rcu
    不需要保护,修饰符可以使用
    list\u进行列表遍历

  • 如果你的线程是一个读卡器,它不应该修改一个列表,所以它可以为每个rcu使用
    list\u


  • 通过两个并发修饰符访问RCU列表通常是不安全的。例如,调整后的元素上并发的
    list\u del\u rcu
    可能会损坏列表


    不确定为什么在内核2.6.25及之前版本中存在每个安全rcu。在任何情况下,它。

    从RCU列表的视图来看,所有线程都分为两组:

    • 读者
    • 修饰语
    一次,该列表可由多个读卡器单个修饰符访问

    读者应使用
    \u rcu
    原语进行列表遍历

    如果有多个修改器,则应通过锁或其他同步方式保护其访问

    因此,为每个安全rcu设置
    列表\u是无用的:

  • 如果您的线程是一个修改器,那么其他线程不能同时修改列表。所以,
    \u rcu
    不需要保护,修饰符可以使用
    list\u进行列表遍历

  • 如果你的线程是一个读卡器,它不应该修改一个列表,所以它可以为每个rcu使用
    list\u


  • 通过两个并发修饰符访问RCU列表通常是不安全的。例如,调整后的元素上并发的
    list\u del\u rcu
    可能会损坏列表


    不确定为什么在内核2.6.25及之前版本中存在每个安全rcu。无论如何,这是另一个问题。是否允许在同步rcu之前执行一些列表\u del\u rcu?
    synchronize\u rcu
    只是删除循环(释放)rcu资源之前的等待。当然,您可以在释放多个元素列表的元素之前等待一次。为每个条目调用列表中的printk安全吗?是否有其他方法可以在列表中打印每个条目?是的,您可以使用
    printk
    对列表中的每个条目进行迭代。另一个问题。是否允许在同步rcu之前执行一些列表\u del\u rcu?
    synchronize\u rcu
    只是删除循环(释放)rcu资源之前的等待。当然,您可以在释放多个元素列表的元素之前等待一次。为每个条目调用列表中的printk安全吗?是否有其他方法可以在列表中打印每个条目?是的,您可以使用
    printk
    对列表中的每个条目进行迭代。