我更新的linux kernel memcpy进入 linux release version

linguranus 2011-02-13 10:19:13
加精
...全文
1951 43 打赏 收藏 转发到动态 举报
写回复
用AI写文章
43 条回复
切换为时间正序
请发表友善的回复…
发表回复
linguranus 2011-02-25
  • 打赏
  • 举报
回复
你最好贴出来,我看看如果我写的就差不多,这些代码已经进入 fedora14, meego, adriod 。

[Quote=引用 84 楼 eyey1 的回复:]
神帖留名。

刚好在看微软memcpy的代码。弱弱问下lz,微软vs.net(2005,2008,2010)的memcpy接近了理论值了吗?
[/Quote]
ww2000e 2011-02-25
  • 打赏
  • 举报
回复
手机写程序 2011-02-25
  • 打赏
  • 举报
回复
神帖留名。

刚好在看微软memcpy的代码。弱弱问下lz,微软vs.net(2005,2008,2010)的memcpy接近了理论值了吗?
linguranus 2011-02-24
  • 打赏
  • 举报
回复
所有的读如果与前面的写没有真正地址上的重叠完全可以 跑到写之前,也就是从 reserve station 中 发射,但是如果有冲突就必须等直到些操作提交,并且 由store buffer 把数据提交到 cache 中去,然后发射读操作,使之得到最新的数据。有些新的方法类似 store-forward那是要求写与读地址重叠或者写的地址覆盖读的地址,这样读操作可以直接从store buffer 中得到数据,而不必等待store buffer 将数据提交到 cache 中去。
linguranus 2011-02-24
  • 打赏
  • 举报
回复
microroutine@yahoo.com

[Quote=引用 81 楼 lishaochun1983 的回复:]
留个联系方式,交流下们~
[/Quote]
少逸 2011-02-24
  • 打赏
  • 举报
回复
留个联系方式,交流下们~
linguranus 2011-02-24
  • 打赏
  • 举报
回复
根本原因,
读是在 cpu pipe line 中进行,而写是 back end work,所以 读 out of order 会带来性能的提高
比如 read a 发生 cache miss, read b 可以继续,同时如果b也发生cache miss 二者latency 可以重叠。写没有必要touch cache, 还因为写必须保证顺序否则结果几乎不可逆。
linguranus 2011-02-24
  • 打赏
  • 举报
回复
借这个帖子写写对这些patch 的优化思想。
先说在 CPU 中 写和读的顺序:
1、Reads are not reordered with other reads.
真正的操作是:在cpu 内部所有的读操作都可以 out of order
但是提交是in program order所以我们会看到读操作是 in program order.
2、Writes are not reordered with older reads.
所有的写操作从进入cpu 到出来都是in (program) order
linguranus 2011-02-21
  • 打赏
  • 举报
回复

刚毕业自己也只能做这个,记得 database (1999年)
告诉我尽量少删除数据,因为那样不能带来节省的空间,
每个页面要留出一部分大约 页面的 20%为了以后更新的时候用
而不至于跨出页面。好漂亮!这句话对我一直在性能优化方面受益,比如
在做 load blance(linux kernel + tcp/ip) 的时候我们看到 CPU cost 与连接数呈线性,
但是当CPU cost达到 90%的时候出现了拐点,也就是二者线性的关系消失了 :)
喜欢 Don box 《com 本质论》,发现很深奥(当时这么认为),所以需要看 <<incide C++ object model>>.
发现要想把应用程序做好需要懂得操作系统所以去做 linux kerenl(linux kernel + tcp/ip)
一段时间之后让我发现要想做好 底层软件我需要CPU的知识,所以我来做这些assembly code
做指令集优化(将神的恩赐发挥到极致--《阿甘正传》)


[Quote=引用 71 楼 lnitcscq 的回复:]
引用 15 楼 linguranus 的回复:
多谢!

c++ 让我打开 com/dcom
c 让我打开 linux kernel + tcp/ip
assembly 让我打开 CPU


引用 12 楼 wenxy1 的回复:
恭喜!
AT&amp;amp;T ASM, 楼主汇编功力深厚.


LZ的经历很丰富……
[/Quote]
隔壁-老阳 2011-02-21
  • 打赏
  • 举报
回复
晕,怎么才在开博啊。
lnitcscq 2011-02-21
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 linguranus 的回复:]
多谢!

VB 让我打开数据库 sql server 6
c++ 让我打开 com/dcom
c 让我打开 linux kernel + tcp/ip
assembly 让我打开 CPU


引用 12 楼 wenxy1 的回复:
恭喜!
AT&amp;T ASM, 楼主汇编功力深厚.
[/Quote]

LZ的经历很丰富.
memory832 2011-02-21
  • 打赏
  • 举报
回复
不错哦!
allen02403 2011-02-21
  • 打赏
  • 举报
回复
哇,看回复就知道楼主高深。膜拜ing....
duruos 2011-02-21
  • 打赏
  • 举报
回复
太高深了,看不懂,以后再看
周江涛 2011-02-21
  • 打赏
  • 举报
回复
赞楼主,mobai
yuyixuantai 2011-02-21
  • 打赏
  • 举报
回复
很牛的代码。
中国人的代码很少进入这样的地方,赞一个。
楼主再接再厉哦。
phpjspasp 2011-02-21
  • 打赏
  • 举报
回复
先拜一拜
linguranus 2011-02-21
  • 打赏
  • 举报
回复
"database 告诉我尽量少删除数据,因为那样不能带来节省的空间"
这句话对我很重要,他似乎告所我:很多东西我们需要知道root cause 而不要被表面现象的伪装而迷惑 :)
wgm001 2011-02-20
  • 打赏
  • 举报
回复
厉害!!!
macklau 2011-02-18
  • 打赏
  • 举报
回复
learning
加载更多回复(23)

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧