以太网驱动的流程浅析(四)-以太网驱动probe流程

作者:heaven 发布于:2020-1-7 14:25 分类:Linux内核分析

我们继续沿着上一篇的以太网思路来继续分析,目的是为了学习以太网这块从应用层到底层的整块加载和匹配流程。

阅读全文>>

评论(0) 浏览(12818)

以太网驱动的流程浅析(二)-Ifconfig的详细代码流程

作者:heaven 发布于:2019-12-27 16:53 分类:Linux内核分析

此文衔接上一节 以太网驱动的流程浅析(一)-Ifconfig主要流程

阅读全文>>

评论(2) 浏览(10612)

以太网驱动的流程浅析(三)-ifconfig的-19错误最底层分析

作者:heaven 发布于:2019-12-27 15:22 分类:Linux内核分析

此文衔接上一节  以太网驱动的流程浅析(二)-Ifconfig的详细代码流程

阅读全文>>

评论(1) 浏览(15042)

以太网驱动的流程浅析(一)-Ifconfig主要流程

作者:heaven 发布于:2019-12-6 15:50 分类:Linux内核分析

以太网的知识非常多,我这里是工作中遇到了一个很奇怪的以太网问题,因此便通读了一遍以太网的加载流程,分享出来供大家阅读。如有不准确的地方还请指出,非常感谢

阅读全文>>

评论(11) 浏览(16831)

RCU(2)- 使用方法

作者:沙漠之狐 发布于:2019-5-24 19:36 分类:内核同步机制

本文介绍RCU的使用方法。

阅读全文>>

标签: 无锁编程

评论(1) 浏览(20744)

RCU(1)- 概述

作者:沙漠之狐 发布于:2019-5-24 19:30 分类:内核同步机制

本文介绍RCU。

阅读全文>>

标签: 无锁编程

评论(0) 浏览(16044)

Linux内核的自旋锁

作者:沙漠之狐 发布于:2019-5-17 19:11 分类:内核同步机制

自旋锁用于处理器之间的互斥,适合保护很短的临界区,并且不允许在临界区睡眠。申请自旋锁的时候,如果自旋锁被其他处理器占有,本处理器自旋等待(也称为忙等待)。

进程、软中断和硬中断都可以使用自旋锁。

自旋锁的实现经历了3个阶段:

(1)     最早的自旋锁是无序竞争的,不保证先申请的进程先获得锁。

(2)     2个阶段是入场券自旋锁,进程按照申请锁的顺序排队,先申请的进程先获得锁。

(3)     3个阶段是MCS自旋锁。入场券自旋锁存在性能问题:所有申请锁的处理器在同一个变量上自旋等待,缓存同步的开销大,不适合处理器很多的系统。MCS自旋锁的策略是为每个处理器创建一个变量副本,每个处理器在自己的本地变量上自旋等待,解决了性能问题。

阅读全文>>

标签: Linux 自旋锁

评论(13) 浏览(25083)

浅谈Cache Memory

作者:smcdef 发布于:2019-5-2 21:14 分类:内存管理

今天探究的主题是cache。我们围绕几个问题展开。为什么需要cache?如何判断一个数据在cache中是否命中?cache的种类有哪些,区别是什么?

阅读全文>>

评论(54) 浏览(54749)

内存一致性模型

作者:passerby 发布于:2019-3-24 14:22 分类:内存管理

早期的CPU是通过提高主频来提升CPU的性能,但是随着频率“红利”越来越困难的情况下,厂商开始用多核来提高CPU的计算能力。多核是指一个CPU里有多个核心,在同一时间一个CPU能够同时运行多个线程,通过这样提高CPU的并发能力。

 内存一致性模型(memory consistency model)就是用来描述多线程对共享存储器的访问行为,在不同的内存一致性模型里,多线程对共享存储器的访问行为有非常大的差别。这些差别会严重影响程序的执行逻辑,甚至会造成软件逻辑问题。在后面的介绍中,我们将分析不同的一致性模型里,多线程的内存访问乱序问题。

阅读全文>>

标签: 内存一致性模型

评论(12) 浏览(23101)

copy_{to,from}_user()的思考

作者:smcdef 发布于:2019-1-27 19:03 分类:内存管理

我们对copy_{to,from}_user()接口的使用应该是再熟悉不过吧。基本Linux书籍都会介绍它的作用。毕竟它是kernel space和user space沟通的桥梁。所有的数据交互都应该使用类似这种接口。所以,今天我们一起探究下copy_{to,from}_user()接口的作用。通过本文可以解答以下问题。

  1. 为什么需要copy_{to,from}_user(),它究竟在背后为我们做了什么?
  2. copy_{to,from}_user()和memcpy()的区别是什么,直接使用memcpy()可以吗?
  3. memcpy()替代copy_{to,from}_user()是不是一定会有问题?

阅读全文>>

标签: copy_to_user

评论(15) 浏览(23953)

Copyright @ 2013-2015 蜗窝科技 All rights reserved. Powered by emlog