kernel

ath10k 出现ath10k_htt_t2h_msg_handler+0xebc/0x1efc解决方案

て烟熏妆下的殇ゞ 提交于 2020-02-24 23:22:04
问题log: Fri Feb 21 20:08:34 2020 kern.warn kernel: [ 86.625786] WARNING: CPU: 0 PID: 8 at /openwrt-18.06.git/build_dir/target-mips_24kc_musl/linux-ar71xx_nand/ath10k-ct-2018-03-16-30827f7d/ath10k-4.13/htt_rx.c:763 ath10k_htt_t2h_msg_handler+0xebc/0x1efc [ath10k_core] Fri Feb 21 20:08:34 2020 kern.warn kernel: [ 86.648495] Modules linked in: fast_classifier ath9k ath9k_common rt2800usb rt2800lib pppoe ppp_async ath9k_hw ath10k_pci ath10k_core ath rt2x00usb rt2x00lib pppox ppp_mppe ppp_generic option nf_nat_pptp nf_conntrack_pptp nf_conntrack_ipv6 mac80211 iptable_nat ipt_REJECT ipt_MASQUERADE

关于高负载服务器Kernel的TCP参数优化

删除回忆录丶 提交于 2020-02-24 02:03:22
net.ipv4.tcp_mem 内核分配给TCP连接的内存,单位是Page,1 Page = 4096 Bytes,可用命令查看: #getconf PAGESIZE 4096 net.ipv4.tcp_mem = 196608 262144 393216 第一个数字表示,当 tcp 使用的 page 少于 196608 时,kernel 不对其进行任何的干预 第二个数字表示,当 tcp 使用了超过 262144 的 pages 时,kernel 会进入 “memory pressure” 压力模式 第三个数字表示,当 tcp 使用的 pages 超过 393216 时(相当于1.6GB内存),就会报:Out of socket memory 以上数值适用于4GB内存机器,对于8GB内存机器,建议用以下参数: net.ipv4.tcp_mem = 524288 699050 1048576 (TCP连接最多约使用4GB内存) net.ipv4.tcp_rmem 和 net.ipv4.tcp_wmem 为每个TCP连接分配的读、写缓冲区内存大小,单位是Byte net.ipv4.tcp_rmem = 4096 8192 4194304 net.ipv4.tcp_wmem = 4096 8192 4194304 第一个数字表示,为TCP连接分配的最小内存 第二个数字表示

Linux kernel简介

对着背影说爱祢 提交于 2020-02-23 13:39:50
内核体系设计分:单内核,微内核 windows是微内核设计。 Linux是单内核设计,但充分借鉴了为微内核体系的优点,为内核引入了模块化机制。 内核的组成部分 kernel:内核核心,一般为bz压缩的image文件,通常位于/boot目录,名称为vmlinuz-VERSION-release kernel object:内核对象,即为内核模块,一般放置于/lib/modules/VERSION-release目录下 kernel和kernel object的版本号一定要完全一样,才能正常使用。 [ ]:N [M]:Module [*]:Y,编译进kernel ramdisk:辅助性文件,并非必须,这取决于内核是否能直接驱动rootfs所在的设备。 里面放的是: 目标设备驱动,例如SCSI设备的驱动; 逻辑设备驱动,例如LVM设备驱动 文件系统,例如xfs文件系统 它是一个简装版的根文件系统 获取内核版本信息的命令:uname 内核文件所在位置:/boot/vmlinuz-VERSION.release 获取内核的release号: # uname -r 2.6.32-754.el6.x86_64 获取主机名: # uname -n c610 # hostname c610 获取内核已经装载了哪些模块:lsmod 显示的信息来自/proc/modules文件 Module:模块名字

服务器操作系统应该选择 Debian/Ubuntu 还是 CentOS?

北城余情 提交于 2020-02-23 11:00:47
来自 http://www.zhihu.com/question/19599986 服务器操作系统应该选择 Debian/Ubuntu 还是 CentOS? 想选择一个 Linux 发行版作为服务器。有没有什么推荐的? 袁昊洋 , IT 运维人员 曾俊瑀 、 岑墨轩 、 姚东旭 等人赞同 //update at 2014-06-06 主要将一些散落在各处的评论,我觉得有价值的,给搬运过来。 我在这个问题下的某个回答的评论居然被删除了!!!!! 我之前根本没想回答这个问题,虽然像目前第一位的 Rio 的回答离谱的一塌糊涂。我也只是赞了一下彭勇的答案。 我被删的评论如下: “不会用就别怪系统不好。推荐 Debian/Ubuntu 跑 Server 是一件很不负责的事情。” 理由是不友善内容?这上面哪个字不友善了?我骂人了么?我讥讽人了么?我指出别人不会用就叫不友善?我开不了飞机,不会开坦克,别人指出我这个技能不足就叫不友善? 既然这样我就好好的说说,题主的问题是服务器采用什么发行版本!所以下面的讨论都是针对服务器的。 首先的首先,我想请各位玩家,你们不要自己最近新玩上什么就觉得什么好,然后大肆的推荐什么好不好!负点责任好不好!人家是服务器,有些时候选错一个发行版本会痛苦死一批人! 是,你现在终于发现有个版本叫 Ubuntu 了,好爽啊,那么多包,随便 apt-get ,

服务器操作系统应该选择CentOS还是Debian/Ubuntu

☆樱花仙子☆ 提交于 2020-02-23 11:00:21
首先的首先,我想请各位玩家,你们不要自己最近新玩上什么就觉得什么好,然后大肆的推荐什么好不好!负点责任好不好!人家是服务器,有些时候选错一个发行版本会痛苦死一批人! 是,你现在终于发现有个版本叫 Ubuntu 了,好爽啊,那么多包,随便 apt-get , 3万个包躺在仓库里面不用编译。好爽啊!几乎所有软件都有最新版本用!唉?过两天你发现 Ubuntu 原来是从 Debian 来的, Debian 才叫牛啊,完全社区运作,包的数量一点都不少啊。再过两天发现 Gentoo 啦,哇塞,牛啊!性能的极致优化,编译编译再编译,configure , configure 再 configure ,精简到极致。再过两天 Gentoo 玩腻了,不就是编译么~ 唉? 原来还有 Arch 啊,这个不错啊,想编译的编译,不想编译的也有默认包。然后2个月没 pacman 更新过的系统,更新一下全挂了。 你的意识形态,走在任何一个阶段都认为这个阶段是最好的选择。但事实并不是这样的,这只是你的兴趣而已。 MINOLTA DIGITAL CAMERA 要讨论这个问题,先要知道两大发行版本的区别在哪里。RedHat 和 Debian 。 一、版本定义 RedHat 是由红帽公司维护的发行版本。其 RedHat 9 是最后一个以 RedHat 为名的发行版本。在 RH9 之后,版本开始分为社区维护的 Fedora

服务器操作系统应该选择 Debian/Ubuntu 还是 CentOS?

匆匆过客 提交于 2020-02-23 10:58:51
编辑推荐!本文来自知乎的袁昊洋,是我见过的关于如何选择服务器操作系统的最有理有据的文章,而且富有实践基础。小编基本上同意全文观点——当然,这并不是说大家就不应该选择其他的操作系统做服务器——甚至你选择Windows XP做服务器都有你的道理。大家有什么选择,希望也发表你的观点。 首先的首先,我想请各位玩家,你们不要自己最近新玩上什么就觉得什么好,然后大肆的推荐什么好不好!负点责任好不好!人家是服务器,有些时候选错一个发行版本会痛苦死一批人! 是,你现在终于发现有个版本叫 Ubuntu 了,好爽啊,那么多包,随便 apt-get , 3万个包躺在仓库里面不用编译。好爽啊!几乎所有软件都有最新版本用!唉?过两天你发现 Ubuntu 原来是从 Debian 来的,Debian 才叫牛啊,完全社区运作,包的数量一点都不少啊。再过两天发现 Gentoo 啦,哇塞,牛啊!性能的极致优化,编译编译再编译,configure , configure 再 configure ,精简到极致。再过两天 Gentoo 玩腻了,不就是编译么~ 唉? 原来还有 Arch 啊,这个不错啊,想编译的编译,不想编译的也有默认包。然后2个月没 pacman 更新过的系统,更新一下全挂了。 你的意识形态,走在任何一个阶段都认为这个阶段是最好的选择。但事实并不是这样的,这只是你的兴趣而已。 要讨论这个问题

服务器操作系统应该选择Debian/Ubuntu还是CentOS?

对着背影说爱祢 提交于 2020-02-23 10:56:37
任何 Linux 发行版本,在理论上都是一样的。只不过操作有的方便,有的麻烦!yum 是比 apt 弱(这就是企业维护和社区维护的区别,企业自己维护不需要这么多功能)但是任何能在 A 发行版本上实现的效果,一定是能在 B 上实现的。 首先,我想请各位玩家,你们不要自己最近新玩上什么就觉得什么好,然后大肆的推荐什么好不好!负点责任好不好!人家是服务器,有些时候选错一个发行版本会痛苦死一批人! 是,你现在终于发现有个版本叫 Ubuntu 了,好爽啊,那么多包,随便 apt-get , 3万个包躺在仓库里面不用编译。好爽啊!几乎所有软件都有最新版本用!唉?过两天你发现 Ubuntu 原来是从 Debian 来的,Debian 才叫牛啊,完全社区运作,包的数量一点都不少啊。再过两天发现 Gentoo 啦,哇塞,牛啊!性能的极致优化,编译编译再编译,configure , configure 再 configure ,精简到极致。再过两天 Gentoo 玩腻了,不就是编译么~ 唉? 原来还有 Arch 啊,这个不错啊,想编译的编译,不想编译的也有默认包。然后2个月没 pacman 更新过的系统,更新一下全挂了。 你的意识形态,走在任何一个阶段都认为这个阶段是最好的选择。但事实并不是这样的,这只是你的兴趣而已。 要讨论这个问题,先要知道两大发行版本的区别在哪里。RedHat 和 Debian。

Linux中如何产生core文件?

不想你离开。 提交于 2020-02-23 08:22:51
   在程序不寻常退出时,内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息)。使用gdb来查看core文件,可以指示出导致程序出错的代码所在文件和行数。 1.core文件的生成开关和大小限制   (1)使用ulimit -c命令可查看core文件的生成开关。若结果为0,则表示关闭了此功能,不会生成core文件。   (2)使用ulimit -c filesize命令,可以限制core文件的大小(filesize的单位为kbyte)。例如使用ulimit -c 1000将会把core文件限制为1000KB。如果生成的信息超过此大小,将会被裁剪,最终生成一个不完整的core文件,在调试此core文件的时候,gdb会提示错误。   (3)使用ulimit -c unlimited,则表示core文件的大小不受限制。   (4)可以将ulimit -c unlimited写入到.bashrc中。 2.core文件生成路径   默认为输入可执行文件运行命令的同一路径下。若系统生成的core文件不带其它任何扩展名称,则全部命名为core。新的core文件生成将覆盖原来的core文件。   如何查询和修改Linux操作系统生成core dump文件的默认路径?   方法1:cat /proc/sys/kernel/core_pattern   方法2:/sbin

Why sizeof(spinlock_t) is greater than zero on uni-processor?

我的梦境 提交于 2020-02-22 18:52:02
问题 The following line printed output as 4 whereas I was expecting 0. printk(KERN_INFO "size of spinlock_t %d\n", sizeof(spinlock_t)); I tried this on a system with single cpu. No debugging flags are enabled while building kernel like CONFIG_DEBUG_SPINLOCK or CONFIG_DEBUG_LOCK_ALLOC . According to kernel header files, it should be zero but output is not consistent with it, any guesses ? 回答1: The best guess I have is that although you have a single CPU, the kernel is still compiled with CONFIG_SMP

Why sizeof(spinlock_t) is greater than zero on uni-processor?

不羁的心 提交于 2020-02-22 18:48:50
问题 The following line printed output as 4 whereas I was expecting 0. printk(KERN_INFO "size of spinlock_t %d\n", sizeof(spinlock_t)); I tried this on a system with single cpu. No debugging flags are enabled while building kernel like CONFIG_DEBUG_SPINLOCK or CONFIG_DEBUG_LOCK_ALLOC . According to kernel header files, it should be zero but output is not consistent with it, any guesses ? 回答1: The best guess I have is that although you have a single CPU, the kernel is still compiled with CONFIG_SMP