上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 70 下一页
摘要: skb_linearize:分配新的skb->data,将旧的skb->data、skb_shinfo(skb)->frags、skb_shinfo(skb)->frag_list中的内容拷贝到新skb->data的连续内存空间中,释放frags或frag_list //其中frags用于支持分散聚 阅读全文
posted @ 2022-04-23 15:51 codestacklinuxer 阅读(527) 评论(0) 推荐(0)
摘要: 以前有过一篇TSO-GSO文章;目前再来回顾一下: TSO与GSO的重要区别1, TSO只有第一个分片有TCP头和IP头,接着的分段只有IP头。硬件tso由ixgbe_tso(ixgbe网卡)等函数来处理tso ,然后在请求DMA,写寄存器,通知网卡发送数据。2, GSO在分段时会调用TCP或UDP 阅读全文
posted @ 2022-04-22 17:11 codestacklinuxer 阅读(455) 评论(0) 推荐(0)
摘要: 1.1 tcp_sendmsg 使用 TCP 发送数据的大部分工作都是在tcp_sendmsg函数中实现的。 int tcp_sendmsg(struct sock *sk, struct msghdr *msg, size_t size) { struct tcp_sock *tp = tcp_s 阅读全文
posted @ 2022-04-21 23:46 codestacklinuxer 阅读(239) 评论(0) 推荐(0)
摘要: rps的全称是Receive Package Steering,rfs的全称是Receive Flow Steering,rps和rfs是google的工程师提供的两个补丁,用以在软件层面实现报文在多个cpu之间的负载均衡以及提高报文处理的缓存命中率。rps和rfs出现的原因主要有以下两个: 1、 阅读全文
posted @ 2022-04-20 18:32 codestacklinuxer 阅读(460) 评论(0) 推荐(0)
摘要: 问题:某次共享内存计算key值时,发现文件的inode在变化, 到底是什么原因导致的呢?最后发现是echo 3 > /proc/sys/vm/drop_caches导致的!! https://time.geekbang.org/column/article/278222?utm_source=rel 阅读全文
posted @ 2022-04-07 15:00 codestacklinuxer 阅读(270) 评论(0) 推荐(0)
摘要: SLUB分配一个object的流程分析 上篇文章已经说了性能瓶颈显示为slub,所以这篇文章来看看 转载: 在上一节 我们清晰的知道了当调用kmem_cache_create之后系统会为我们分配一个名为slub_test的一个slab。这时候只是分配了kmem_cache,kmem_cache_cp 阅读全文
posted @ 2022-04-06 17:19 codestacklinuxer 阅读(128) 评论(0) 推荐(0)
摘要: 目前可以看出: 核心问题为:多线程fd close/open 以及 skb的slab_cache以及 slab_free fd close /open 所引发的的问题已经有相关解决办法;主要是slab_free这个? 内核的slab来自一种很简单的思想,即事先准备好一些会频繁分配,释放的数据结构。然 阅读全文
posted @ 2022-03-31 18:13 codestacklinuxer 阅读(29) 评论(0) 推荐(0)
摘要: 路由查找 与IPv4不同,IPv6的出口路由和入口路由都使用函数ip6_pol_route实现,区别在于传入的接口索引参数不同 INDIRECT_CALLABLE_SCOPE struct rt6_info *ip6_pol_route_input(struct net *net, struct f 阅读全文
posted @ 2022-03-29 15:14 codestacklinuxer 阅读(41) 评论(0) 推荐(0)
摘要: 路由表查找函数首先调用fib6_node_lookup查找路由节点,由指定路由表的根节点开始,根据数据流的目的和源地址进行。 static struct fib6_node *fib6_lookup_1(struct fib6_node *root, struct lookup_args *args 阅读全文
posted @ 2022-03-29 14:17 codestacklinuxer 阅读(74) 评论(0) 推荐(0)
摘要: 目前在解决ipv6 路由bug的时候发现,内核ipv6 和ipv4 路由设计区别很大! IPv6路由项添加 ip route add 3ffe::/64 via 3001::1 对应的核心函数为: fib6_add_1 :负责在路由树中找到合适的插入节点,或者创建新的用于插入操作的节点(根据allo 阅读全文
posted @ 2022-03-29 12:42 codestacklinuxer 阅读(59) 评论(0) 推荐(0)
上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 70 下一页