hxndg Blog

Thinking will not overcome fear but action will.

尝试翻译内存模型和缓存一致性

第一章

尝试翻译内存模型和缓存一致性 建议读者在阅读前搞明白缓存和计算机的一些基础知识,诸如缓存是怎么设计,缓存为何使用物理内存做标记,CPU的乱序指令,在指令队列和结果队列上是如何进行的。建议阅读《现代体系结构上的unix系统》和wiki百科。对内容有疑问建议直接stackoverflow或者看英文,对内容有异议可以直接回复我或者在github上发patch。 第一章:内存一致性和缓存一致性引...

平凡的编辑剧情角色设计

活跃思想

平凡的编辑剧情角色设计 属性值 口才(这个选项用于说服他人,比方说劝作者接受建议,和酒保交流,要不要改成魅力呢,也会影响其他认识的人对你的亲切感) 灵感(这个选项用于能够和作者角落作品的时候想到高明的建议) 敏感(这个属性用于发现一些的情况,比方说话外之意) 学识(这个选项用于当和其他人对话的时候,答话的时候能说出一些高明的回答) 健康(这个属性影响和作者出去玩的时候遇到的事情,比方说...

USTACK系统的ATCPZONE设计

不能不学习啊

USTACK系统的ATCPZONE设计 前言 简单看看ATCP ZONE怎么做的 分类流程 分配流程有限从per cpu cache取出来。 atcp_zalloc函数,会将当前当前ATCP进程的ID保存到atcpid里 每个ATCP线程都会首先尝试从自己的per atcp cache也就是一个长长的链表中取出来数据:这个链表每个元素的第一个字节位置存储的是下个元素的位置ca...

记录一些遇见的有趣BUG

不能不学习啊

记录一些遇见的有趣BUG 前言 这篇博客的目的是记录下遇见过的有趣BUG 今天想想忽然觉得比较搞笑,几个公司做的东西不一样就会遇到各种不同的问题:在huayao涉及到的都是操作系统/内核/内存很多本身的问题,因为代码很老,做的东西又很底层,直接DPDK在用户态开搞;在mt公司涉及到的都是不规范的代码/不规范的环境/不规范的C/C++开发流程;在轻舟涉及到的就是各种新工具比方说buildf...

从锁和RTE ring与KFIFO说起

不能不学习啊

从锁和RTE ring与KFIFO说起 前言 为什么写这篇博客?本质上是昨天大师和我讨论RTE ring的无锁操作,外加我在看KFIFO和《C++并发编程》,这个整理完成,我就可以转而去看《计算机体系结构xxxxx》的内容了。毕竟不能说东西整完了无所得。 对关键数据/流程的保护 代码进入临界区,对关键数据做竞争修改,是导致恶性条件竞争的原因。三种解决方法: 第一种很常见,就是锁,锁...

阅读整理曾经做过的leetcode

不能不学习啊

阅读整理曾经做过的leetcode 前言 原先做了不少中等难度和简单难度的leetcode题目,都上传到了github上。但是没有总结,现在面试需要的时候就发现很多都想不起来了。所以今天写一个整理总结的类型。 常见数据结构和基本算法(摘抄自halfrost) 数据结构见下, 数据结构 变种 相关题目 讲解文章 ...

异步程序编写时候的一些小教训

不能不学习啊

异步程序编写时候的一些小教训 前言 写博客是为了什么?放松脑子,构建自己的模型 针对通俗事件的教训 开会的时候,应当提前就确定好:1要讨论的点,2 自己的观点,3基本观点必须遵守的原则。将无用的思考/争论时间去掉。如果必然发生讨论,那么要注意基本原则的有效和一致性。 代码的研发/BUG的报告要遵循一惯性的观点,不应当想到啥是啥。 绕开难度大的东西,去做简单的事情是一种非常...

如何进行性能分析和诊断

不能不学习啊

如何进行性能分析和诊断 0 前言和性能测试综述 为什么写这个呢,毕竟性能分析往往是整个系统的最后一环,而且目前很多时候像什么cpu/内存往往都可以拓展的情况下,性能分析的意义不再像原先那么大。但是现在做CI,CI运行的稳定,对CI中每个测试都有一定的依赖,以目前轻舟的实例来说:如果format test 或者仿真测试scenario-test-presubmit-cn运行过久,那么就会占...

阅读内核程序员的smp修养

不能不学习啊

阅读内核程序员的smp技术 前言 这本书实际上叫做《现代体系结构上的UNIX系统-内核程序员的对称多处理和缓存技术(修订版)》这本书我才刚刚看完,下面打算看电子版书籍《内存模型和缓存一致性》与《多处理器编程的艺术》。我第一次看的时候没注意第一三部分,主要注意了第二部分。 第一部分–高速缓存系统 第一部分讲解了两种高速缓存系统和其写策略:直接映射高速缓存和N路组相连高速缓存系统,与常用的...

阅读Libevent网络库

不能不学习啊

阅读Libevent/libuv源码 前言 libevent 阅读的文档是: 这篇讲的很简陋https://github.com/libevent/libevent.git 讲的很不错的文档:https://github.com/balloonwj/CppGuide/tree/master/articles/libevent%E6%BA%90%E7%A0%81%E6%B7%B...