kernel

2024/4/11 16:59:34

Linux中的随机数

一、概念 随机数都是由随机数生成器(Random Number Generator)生成的。 1.真随机数 TRUE Random Number 真正的随机数是使用物理现象产生的:比如掷钱币、骰子、转轮、使用电子元件的噪音、核裂变等等,这样的随机数发生器叫做物…

Out Of Memory Management

因为在开发过程中遇到了OOM 所以想要信息理解一下这个OOM 到底是真么回事,然后就找到了这篇文章,为了自己学习,所以翻译一下,以备后面查看: Out Of Memory Management内存不足管理检查可用内存确定OOM状态选择过程杀死…

uboot学习及内核更换_incomplete

官方文档 在前面 文章目录 uboot常见命令学习环境变量网络控制台uboot标准启动其他 升级uboot或内核bin和uimg以及booti和bootm的区别制作uImage更换内核更换uboot后续计划 uboot常见命令学习 环境变量 Environment Variables环境变量 autostart 如果值为yes,则会…

LWN:5.15 开发周期数据统计!

关注了就能看到更多这么棒的文章哦~Some 5.15 development statisticsBy Jonathan CorbetNovember 1, 2021https://lwn.net/Articles/874283/5.15 内核在 10 月 31 日正式发布了,code name 也就顺利成章地起名为 "Trick or Treat" 了。当时&am…

in_interrupt()和 in_irq、in_softirq介绍

先分别看定义: #define hardirq_count() (preempt_count() & HARDIRQ_MASK) #define softirq_count() (preempt_count() & SOFTIRQ_MASK) #define irq_count() (preempt_count() & (HARDIRQ_MASK | SOFTIRQ_MASK | NMI_MASK…

LWN: 迫在眉睫的版本号修改!

关注了就能看到更多这么棒的文章哦~ The imminent stable-version apocalypse By Jonathan Corbet February 5, 2021 DeepL assisted translation https://lwn.net/Articles/845120/ 人们经常说,stable-kernel release 应该要是稳定的(stable…

Chapter 7 - 8. Congestion Management in Ethernet Storage Networks以太网存储网络的拥塞管理

Stomped CRC Counters Stomped CRC counters help in finding the location of bit errors in a network that uses cut-through switches. More precisely, these counters help in finding where bit errors do not exist. Stomped CRC 计数器有助于在使用直通式交换机的网络…

嵌入式linux下如何使用usb键盘

首先usb键盘驱动的源代码位于一下目录: drivers/usb/input/usbkbd.c 将usb键盘驱动编译进内核: #make menuconfig Device Drivers—>USB support---->USB HIDBP Keyboard (simple Boot) support (注意:有可能默认设置USB键盘驱动是…

杂项设备文件操作集

file_operationgs.c #include<linux/init.h> #include<linux/module.h> #include<linux/kernel.h> #include<linux/fs.h>//文件操作集头文件 #include<linux/miscdevice.h>//杂项设备头文件 #include<linux/uaccess.h>//数据发送接受头文…

redhat8设置kdump不生效问题

kdump配置解决oom杀死crash进程开机后设置kdump第二内核如果生成的crash 过大 在/etc/kdump.conf设置然后重启kdumpe服务测试生成 coredump最近开发内核过程中Redhat8 不能生成coredump 所以自己研究了下规避解决了&#xff1a;以下是配置&#xff0c;记录下方便后续查看。解决…

顶层Makefile,Kconfig,.config,子目录kconfig,Makefile,kbuild的关系

一、kernel目录架构 linux内核是一个庞大的开源软件&#xff0c;针对arm&#xff0c;x86&#xff0c;mipi等等架构&#xff0c;内有不同平台的驱动代码&#xff0c;和与不同架构soc相关的核心代码 他们是如何进行编译的&#xff1f; 如下&#xff0c;输入 make ARCHarm CROSS_…

非阻塞io之 epoll内核实现

epoll创建epollFdepollFD文件描述符的回调实现epoll_ctl 系统调用epoll_ctl的系统调用实现EPOLL_CTL_ADDEPOLL_CTL_DElEPOLL_CTL_MODepoll_wait系统调用do_epoll_waitep_pollep_send_eventsep_scan_ready_listep_send_events_procep_item_pollvfs_poll可以结合这篇文章一起看 e…

基于aarch64分析kernel源码 六:kernel_init进程(1号进程)、kthreadd进程(2号进程)

一、kernel_init进程创建流程 start_kernel --> arch_call_rest_init --> rest_init--> pid user_mode_thread(kernel_init, NULL, CLONE_FS)---> kernel_clone二、kernel_init static int __ref kernel_init(void *unused) {int ret;/** Wait until kthreadd i…

block层:6. tag机制

tag 源码基于5.10 1. 获取tag unsigned int blk_mq_get_tag(struct blk_mq_alloc_data *data) {// 获取hctx或者调度器里的tagsstruct blk_mq_tags *tags blk_mq_tags_from_data(data);struct sbitmap_queue *bt;struct sbq_wait_state *ws;DEFINE_SBQ_WAIT(wait);unsigned…

Chapter 8 - 13. Congestion Management in TCP Storage Networks

Switch Buffer Management Recall that during network congestion, a TCP sender relies on the following events for reducing its transmission rate. 回想一下,在网络拥塞期间,TCP 发送端依靠以下事件来降低传输速率。 1. When the sender detects packet loss becaus…

Chapter 8 - 10. Congestion Management in TCP Storage Networks

Comparison with Lossless Networks As Chapter 2 explains, Fibre Channel defines a maximum frame size of 2148 bytes. Users do not have to change the MTU value, and hence, it is never a consideration. 如第 2 章所述,光纤通道定义的最大帧大小为 2148 字节。用户…

Chapter 8 - 7. Congestion Management in TCP Storage Networks

TCP Flow Monitoring versus I/O Flow Monitoring TCP flow monitoring shouldn’t be confused with I/O flow monitoring because of the following reasons: TCP 流量监控不应与 I/O 流量监控混淆,原因如下: 1. TCP belongs to the transport layer (layer 4) of the OS…

Chapter 7 - 3. Congestion Management in Ethernet Storage Networks以太网存储网络的拥塞管理

Pause Threshold for Long Distance Links长途链路的暂停阈值 This section uses the following basic concepts: 本节使用以下基本概念: Bit Time (BT): It is the time taken to transmit one bit. It is the reciprocal of the bit rate. For example, BT of a 10 GbE po…

CentOS7.6升级到CentOS7.9并升级内核

Centos7.6升级到Centos7.9并升级内核 Centos 7.6是一款开源的操作系统&#xff0c;拥有强大的安全功能。Centos7.9是基于Centos7的最新版本&#xff0c;这里介绍如何将Centos7.6升级到Centos7.9并升级内核。一、准备工作 1、准备服务器的硬件&#xff1a;为了确保操作系统正常运…

内核实验(九):添加IO驱动的阻塞读写功能

一、篇头 继续使用qemu调试内核的实验。本章复习阻塞与非阻塞IO的概念和机制&#xff0c;然后对之前实验&#xff08;八&#xff09;的代码做少许修改&#xff0c;添加阻塞的IO读写。 二、系列文章 略…… 三、实验环境 编译服务器NFS&#xff1a;ubuntu 22.04Qemu 虚拟机…

Kernel: log: printk 吐槽一个commit

https://github.com/rtreffer/ubuntu-kernel-pinephone-pro/commit/10102a890b543a8a08457dc69fa55bc032403c7d 说这个commit里有解释&#xff0c;在内核发送panic&#xff0c;lockdep&#xff0c;oops的时候&#xff0c;console_printk的loglevel会提升到最高&#xff0c;尽量…

Linux: errno: EADDRNOTAVAIL; ipv6-bind;Cannot assign requested address

文章目录 解释一种情况tentative 的解释与openssh之间的关系如何缓解这个问题研发解释一种情况 #define EADDRNOTAVAIL 99 /* Cannot assign requested address */ 有一种情况是:当IP6的地址处于tentative的时候,就会返回这个错误。下面的是bind的调用的时候会check地址的f…

[linux]编译一个ko文件并运行

一、需求 有一段代码需要在运行时加载注入内核中&#xff0c;当用户层需要访问时可以提供内核态环境去运行。 二、c代码构建 // #include <errno.h> // #include <string.h> // #include <stdio.h> // #include <fcntl.h> // #include <stdlib.h…

mmap内核源码分析,基于内核版本3.10(二)

在之前写了一篇mmap内核源码分析&#xff0c;基于内核版本3.10&#xff0c;经过几天再来回顾发现还是没能学习透彻&#xff0c;所以再写一篇&#xff08;二&#xff09; mmap内核源码分析&#xff0c;基于内核版本3.10&#xff08;一&#xff09;博客地址&#xff1a; https:…

编写虚拟UART驱动程序-框架

一、框架回顾 二、编写UART驱动要做的事 1.注册一个uart_driver 2. 对于每一个port&#xff0c;都会在设备树里面有一个节点 3. 设备树里的节点和platform_driver节点匹配 4. 当platform_dirver的probe函数被调用时&#xff0c;可以获得设备树里的信息&#xff0c;从而把每个串…

struct vm_area_struct结构体学习

Linux通过类型为vm_area_struct的结构体对象实现线性区&#xff0c;该结构定义了内存VMM内存区域。 每个VM区域/任务中有一个。 VM区域是进程虚拟内存空间的任何部分&#xff0c;它具有页面错误处理程序的特殊规则&#xff08;即共享库&#xff0c;可执行区域等&#xff09;。 …

Chapter 8 - 6. Congestion Management in TCP Storage Networks

Congestion Due to Over-utilization of the Target Link The same problem may happen on a target/storage link when multiple hosts initiate large-size write I/O operations to the same target. 当多台主机对同一目标启动大容量写入 I/O 操作时,目标/存储链路上可能会…

Python实现基于高斯核函数,线性核函数和多项式核函数的SVR(支持向量回归)及预测算法

#(SVR)支持向量回归算法 import numpy as np from sklearn.svm import SVR import matplotlib.pyplot as plt from pylab import mpl mpl.rcParams[font.sans-serif] [SimHei]Xnp.sort(5*np.random.rand(40,1),axis0) #生成40组数据,按列排列 ynp.sin(X).ravel() #生成40组数据…

X4412开发板移植(linux-4.16.0)

代码&#xff1a; git clone https://github.com/chasinglulu/linux.git -b X4412-Kernel 设备树文件 linux-4.16.0/arch/arm/boot/dts/exynos4412-x4412.dts /** X4412 board device tree source** Device tree source file for 9tripods X4412 board which is based on* Sa…

编译tiny4412 Linux 内核

工作环境 Ubuntu 22 交叉编译器 4.5.1 解压Linux内核源码&#xff0c;进入目录 将官方配置完好的defconfig文件作为配置文件 cp tiny4412_linux_defconfig .config由于内核版本较低&#xff0c;需要下载低版本的gcc&#xff0c;选择下载gcc-9与g9 sudo apt install gcc-9 g-…

USB总线-Linux内核USB3.0主机控制器驱动框架分析(十二)

1.概述 如下图所示&#xff0c;Linux内核中USB主机体系结构由五部分组成&#xff0c;分别为Application Software、USB Class Driver、USB Core(USB Driver)、USB Host Controller Driver、USB Host Controller。应用程序处于用户空间&#xff0c;通过系统调用访问Class Drive…

LWN: lockless编程模式——relaxed access和partial memory barrier

关注了就能看到更多这么棒的文章哦&#xff5e; Lockless patterns: relaxed access and partial memory barriers February 26, 2021 This article was contributed by Paolo Bonzini DeepL assisted translation https://lwn.net/Articles/846700/ 本系列中的第一篇文章LWN&a…

jupyter notebook 使用笔记

文章目录jupyter使用笔记一、jupyter 管理 kernel&#xff1a;二、jupyter后台运行&#xff1a;jupyter使用笔记 一、jupyter 管理 kernel&#xff1a; 参考我的另一篇博客&#xff1a; https://blog.csdn.net/pentiumCM/article/details/107065832 二、jupyter后台运行&…

Chapter 7 - 2. Congestion Management in Ethernet Storage Networks以太网存储网络的拥塞管理

Location of Ingress No-Drop Queues入口无损队列的位置 Ingress queues for no-drop traffic are maintained by all the ports in a lossless Ethernet network. For the sake of simplicity, Figure 7-1 shows ingress no-drop queue(s) only at one location, but in real…

RHEL7密码恢复

在linux中&#xff0c;以管理员身份登录或具有完全sudo的访问权限的用户恢复根密码是一个简单任务,但是如果管理员没有登陆&#xff0c;情况就有些复杂了。在这种情况下,管理员可以从Live CD启动&#xff0c;挂载root文件系统&#xff0c;然后编辑/etc/shadow。管理员还应该能够…

XiaomiRouter自学之路(14-Openwrt文件系统读取失败问题解决)

XiaomiRouter自学之路(14-Openwrt文件系统读取失败问题解决) 在11-Openwrt配置编译烧录中&#xff0c;我们将编译好的openwrt-ramips-mt7620-xiaomi-miwifi-mini-squashfs-sysupgrade.bin烧录进去后&#xff0c;发现系统可以正常启动&#xff0c;但是出现了Kernel panic&#x…

linux -- 启动分析及耗时分析

入口&#xff1a; start_kernel(kernel/init/main.c) {char *command_line;char *after_dashes;lockdep_init() /* ? 初始化lockdep hash 表 or 系统哈希表chainhash_table ? */set_task_stack_end_magic()smp_setup_processor_id(kernel/arch/arm/kernel/setup.c) /*当只有…

3.10 Android eBPF HelloWorld调试(四)

一,读取eBPF map的android应用程序示例 1.1 C++源码及源码解读 /system/memory/bpfmapparsed/hello_world_map_parser.cpp //基于aosp android12#define LOG_TAG "BPF_MAP_PARSER"#include <log/log.h> #include <stdlib.h> #include <unistd.h&g…

Linux 锁与进程间通信

引言 本文整理了 Linux 内核中锁与进程间通讯的相关知识。更多相关文章和其他文章均收录于贝贝猫的文章目录。 锁与进程间通讯 前面介绍系统调用时就提到了信号这一进程间通讯手段&#xff0c;这一节我们详细的介绍各种进程间通讯的机制&#xff08;IPC&#xff09;。和 IPC …

【预告】网络研讨会|下一代汽车操作系统微内核seL4:seL4基金会主席谈物理系统安全工程实践

seL4 微内核是世界上第一个具有实现正确性和安全执行的数学、机器检查证明的操作系统 (OS) 内核。它在Arm和RISC-V处理器上的全面证明仍然是独一无二的。它也是开源的、免费使用的性能基准&#xff0c;并得到中立的、非营利的 seL4 基金会的支持。多年前&#xff0c;它已在军用…

iRDMA流量控制总结 - 3

5.0 Priority Flow Control - Planning and Guidelines优先流量控制 - 规划与指导 This section covers planning, considerations, and general configuration guidelines for enabling PFC on a network. 本节介绍在网络上启用 PFC 的规划、注意事项和一般配置指南。 5.1 S…

y9000x Ubuntu 16.04 网卡问题 以及升级内核问题

1.y9000x网卡问题 https://blog.csdn.net/zsyf33078/article/details/105319368 2.升级内核问题 在升级内核linux-headers-5.7.1-050701_5.7.1-050701.202006071230_all.deb 文件的时候说缺少libssl1.1问题 https://blog.csdn.net/z952957407/article/details/99690571 3.i91…

Linux修改内核参数的两种方法

Linux内核主要有五大功能&#xff1a;进程管理、内存管理、文件系统、网络管理、驱动管理&#xff0c;此外还有个安全管理的功能。那如何修改Linux内核参数呢&#xff1f;这里有两种方法 方法1&#xff1a;输入重定向改内核参数&#xff0c;临时生效 临时修改网络协议参数 […

深度学习CNN的feature map

输入&#xff1a;N0*C0*H0*W0 输出&#xff1a;N1*C1*H1*W1 输出的feature map大小&#xff1a; H1H02pad−kernel_sizestride1 W1W02pad−kernel_sizestride1 注&#xff1a;当stride为1时&#xff0c;若padkernel_size−12&#xff0c;那么经过计算后的feature map大小不…

Linux内核系列(一) 源码下载及如何学习

1、源码下载&#xff1a; https://www.kernel.org/ HTTPhttps://www.kernel.org/pub/GIThttps://git.kernel.org/ 官网下载经常速度太慢&#xff0c;无法下载&#xff0c;提供另一个链接&#xff1a; http://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/linux/kernel/ 2、如何…

Linux内核的文件预读(readahead)

编者按&#xff1a;Linux文件预读算法磁盘I/O性能的发展远远滞后于CPU和内存&#xff0c;因而成为现代计算机系统的一个主要瓶颈。预读可以有效的减少磁盘的寻 道次数和应用程序的I/O等待时间&#xff0c;是改进磁盘读I/O性能的重要优化手段之一。本文作者是中国科学技术大学自…

Linux: code: name: void dev_deactivate(struct net_device *dev)

一开始看这个函数&#xff0c;还以为要做&#xff0c;网卡设备的down操作。 后来一看代码&#xff0c;原来这个函数是在net/sched/sch_generic.c 文件里&#xff0c;而且不是要做网络接口的down操作。操作的结果是&#xff1a;deactivate transmissions on several devices&…

使用QEMU+GDB断点调试Linux内核代码

文章目录一、篇头二、环境配置2.1 安装QEMU2.2 安装编译工具链三、编译内核3.1 编译配置3.2 编译四、GDB断点调试4.1 启动内核4.2 GDB远程连接五、 附录1. 查看内核版本号2. 编译器 gnueabi和gnueabihf的区别一、篇头 日常工作中对于内核的调试&#xff0c;大部分情况下只能使…

linux kernel内存申请

kmalloc()、kzalloc()、vmalloc() 的区别是&#xff1a; kzalloc 是强制清零的 kmalloc 操作&#xff1b;&#xff08;以下描述不区分 kmalloc 和 kzalloc&#xff09;kmalloc 分配的内存大小有限制&#xff08;128KB&#xff09;&#xff0c;而 vmalloc 没有限制&#xff1b;…

acpi:error!Centos8安装nvidia显卡后与acpi冲突

前言 之前装好了显卡驱动&#xff0c;但是可能是acpi与nvidia显卡驱动冲突&#xff0c;开机后在图形界面输入密码登录时会卡住&#xff0c;需要另外一台机器ssh连接后输入init 5刷一下才能正常登录&#xff0c;也不能按ctrlaltf2进入命令行。 如果知道ip地址&#xff0c;能远程…

机器学习算法中文视频教程

机器学习算法中文视频教程 在网上狂搜ReproducingKernel Hilbert Space的时候&#xff0c;找到了一个好东西。这个是李政軒Cheng-Hsuan Li的关于机器学习一些算法的中文视频教程。感觉讲得很好。这里非常感谢他的分享&#xff1a;http://www.powercam.cc/chli。也贴到这里&…

_initcall 加载驱动顺序级别

#define pure_initcall(fn) __define_initcall(“0”,fn,0) #define core_initcall(fn) __define_initcall(“1”,fn,1) #define core_initcall_sync(fn) __define_initcall(“1s”,fn,1s) #define postcore_initcall(fn) __define_initcall(“2”,fn,2) #define postcore_…

Chapter 8 - 2. Congestion Management in TCP Storage Networks

How iSCSI and NVMe/TCP Exchange Data The following are the high-level steps for the end devices to exchange data using iSCSI and NVMe/TCP protocols over a TCP/IP network (Figure 8-1). 以下是终端设备通过 TCP/IP 网络使用 iSCSI 和 NVMe/TCP 协议交换数据的高级…

PBHA(page based hardware attributes)的介绍

基本介绍 基于页面的硬件属性 (PBHA&#xff1a;page based hardware attributes) 是一项可选的、由实现定义的功能。 它允许软件在转换表中设置最多四位&#xff0c;然后通过事务通过内存系统传播这些位&#xff0c;并可在系统中用于控制系统组件。这些位的含义特定于系统设计…

jupyter notebook安装和删除kernel的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

在 Jupyter Notebook 中查看所使用的 Python 版本和 Python 解释器路径

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 我们在做 Python 开发时&#xff0c;有时在我们的服务器上可能安装了多个 Python 版本。 使用 conda info --envs 可以列出所有的 conda 环境。当在 Linux 服务器上使用 which python 命令时&#xff0…

自定义内核模块读取进程的线性地址

打印指定进程的线性地址段 利用procfs查看进程的线性地址自定义内核模块读取进程的线性地址编译并加载内核模块 利用procfs查看进程的线性地址 自定义内核模块读取进程的线性地址 #include <linux/module.h> #include <linux/init.h> #include <linux/kernel.h…

Linux 缓存与页交换

引言 本文整理了 Linux 内核中缓存与页交换的相关知识。更多相关文章和其他文章均收录于贝贝猫的文章目录。 缓存与页交换 从外部存储设备读取数据&#xff0c;比从物理设备读取数据要慢得多&#xff0c;因此 Linux 使用了缓存机制将已经读取的数据保存在内存中&#xff0c;供…

树莓派 IO 驱动

目录&#xff1a;1.寄存器&#xff1a;2.寄存器类型&#xff1a;&#xff08;1&#xff09;GPFSEL&#xff1a;GPIO Function Select Registers&#xff08;功能选择寄存器&#xff09;&#xff08;2&#xff09;GPSET&#xff1a;GPIO Pin Output Set Registers&#xff08;输…

block层:7. 请求下发

blk_dispatch 源码基于5.10 1. blk_mq_sched_dispatch_requests void blk_mq_sched_dispatch_requests(struct blk_mq_hw_ctx *hctx) {// 队列struct request_queue *q hctx->queue;// 队列已停止或者被暂停if (unlikely(blk_mq_hctx_stopped(hctx) || blk_queue_quiesc…

Linux kernel调试方法--使用qemu+eclipse

此文章为原创&#xff0c;可以转载&#xff0c;请注明来源&#xff1a;https://blog.csdn.net/zhaojia92 kernel是一个庞大的C工程&#xff0c;传统使用gdbqemu工具调试&#xff0c;但gdb太过简陋&#xff0c;查看源码不方便。本着效率优先的原则&#xff0c;选择eclipse作为ke…

Linux内核socket(一)

要了解内核socket需要先对内核socket的结构进行了解。 其中比较重要的就是struct socket和struct sock两个结构体。 每个socket数据结构都有一个sock数据结构成员&#xff0c;sock是对socket的扩充&#xff0c;两者一一对应&#xff0c;socket->sk指向对应的sock&#xff…

linux添加sht3x温湿度传感器驱动记录

最近拿到一块imx6ull板子&#xff0c;上面有一颗温湿度传感器sht30,需要读取其数值。本人能力有限&#xff0c;自己写驱动还有一点困难&#xff0c;好在 linux内核里自带了很多器件的驱动&#xff0c;只需要找到相关的驱动文件根据要求修改一下设备树、添加进内核里编译就可以。…

Hi3519V101开发环境搭建(二)

目录 文章目录目录前言编译U-boot编译Linux-3.18.y的内核链接地址前言 前面已经搭建好了Ubuntu下的海思开发环境&#xff0c;现在对编译Uboot和Kernel的过程做一个简单的记录。参考文档《Hi3519V101 U-boot 移植应用开发指南.pdf》和《Hi3519V101 Linux开发环境用户指南.pdf》…

dracut添加指定固件

文章目录 linux-firmware1、固件介绍2、Microcode updates for CPUs3、如何添加固件 linux-firmware 1、固件介绍 存放在 /lib/firmware&#xff0c;固件来自kernel 仓库更多的固件可以参考git仓库&#xff0c;https://git.kernel.org/pub/scm/linux/kernel/git/firmware/lin…

iRDMA流量控制总结 - 5

6.0 Priority Flow Control – Verification带优先级的流量控制 - 验证 6.1 Priority Counters优先级计数器 Priority flow control counters for each interface are available in ethtool. They measure the number of Xon and Xoff (transmit on and off) frames sent and…

Linux 时间管理

引言 本文整理了 Linux 内核中时间管理的相关知识。更多相关文章和其他文章均收录于贝贝猫的文章目录。 时间管理 到目前为止&#xff0c;我们已经谈论了许多关于时间相关的任务&#xff0c;比如延迟某一段时候后执行某个任务&#xff0c;又或者在超时时间内等待某一事件的到…

FT2000+ qemu kvm 红旗 crash 分析 频繁设置CPU online及cgroup导致进程卡死、不调度故障

测试程序 /** tcti.cpp参考&#xff1a; https://www.cnblogs.com/organic/p/17321523.htmlg -stdc11 -lpthread trigger_cgroup_timer_inactive.cpp -o inactive_timer ./inactive_timer 100000 10000 */#include <errno.h> #include <iostream> #include <pt…

如何解决Linux下USB设备节点名不固定问题

如何解决Linux下USB设备节点名不固定问题 以USB转串口为例&#xff0c;通常设备节点名为ttyUSBx&#xff08;x为0~n&#xff09;,Linux内核会根据插入设备的先后顺序进行编号的分配&#xff0c;比如第一个插入的设备编号为0&#xff0c;然后依此加1。 如果仅仅以设备节点ttyU…

NVMe Over Fabrics with iRDMA总结 - 1

1.0 Introduction简介 NVM Express* (NVMe*) drives are high-speed, low-latency, solid-state drives (SSDs), that connect over the server Peripheral Component Interconnect Express* (PCIe*) bus. NVM Express* (NVMe*) 硬盘是高速、低延迟的固态硬盘 (SSD),通过服务…

内存管理之alloc_pages_exact

kernel:5.8.11 定义在/mm/page_alloc.c /*** alloc_pages_exact - 分配物理上连续的精确页数。* size: 要分配的字节数* gfp_mask: 分配的 GFP 标志不能包含 __GFP_COMP** 此函数与alloc_pages()相似&#xff0c;不同之处在于&#xff0c;它分配最少数量的页面以满足请求。 al…

比较 内核 读写锁与顺序锁, RCU

读写锁与顺序锁, RCU 自旋锁读写锁范式 悲观顺序锁范式 乐观RCU 理智礼让沟通 j哲学比较悲观&#xff0c;假设最坏情况&#xff0c; 认为读时有人写&#xff0c;读写冲突大比较乐观&#xff0c;假设最好情况&#xff0c;认为读时没人写。 读写冲突小。理智派。综合二者优缺点。…

Linux 网络

引言 本文整理了 Linux 内核中网络的相关知识。更多相关文章和其他文章均收录于贝贝猫的文章目录。 网络模块 最后&#xff0c;我们介绍一下 Linux 的网络实现&#xff0c;Linux 以一种结构良好到令人惊讶的模型&#xff0c;整合了各种协议和底层硬件。 互联的计算机 计算机…

linux kernel log 整理

熟悉linux内核&#xff0c;或者看过linux内核源码的同学就会知道&#xff0c;在内核中&#xff0c;有一个类似于c语言的输出函数&#xff0c;叫做printk&#xff0c;使用它&#xff0c;我们可以打印各种我们想要的信息&#xff0c;比如内核当前的运行状态&#xff0c;又或者是我…

LUKS磁盘加密

数据的安全&#xff0c;保密性在现在的生活中显得越来越重要。随着数字化的时代的来临&#xff0c;越来越多的数据被数字化&#xff0c;特别是更多有关于我们隐私的数据在不断生成&#xff0c;甚至还有我们需要离线保存的密钥等。而且通常我们使用磁盘&#xff0c;USB 闪存&…

Chapter 1 - 6. Introduction to Congestion in Storage Networks

NVMe/TCP NVMe/TCP carries NVMe commands over TCP transport (Figure 1-8) for accessing remote block storage via a lossy or sometimes lossless network. It is an OSI layer 5 (sessions layer) protocol. NVMe/TCP 通过 TCP 传输(图 1-8)传输 NVMe 命令,以便通过有…

Chapter 1 - 9. Introduction to Congestion in Storage Networks

Terminology iSCSI uses the terminology of initiator (or iSCSI client) and target (or iSCSI server). NVMe/TCP uses the terminology of host and controller respectively. iSCSI 使用的术语是启动程序(或 iSCSI 客户端)和目标程序(或 iSCSI 服务器)。NVMe/TCP 分别…

centos/redhat kernel-debug-info-xx.rpm与kernel-debuginfo-xx.rpm区别

kernel-debug-debuginfo是Kconfig里面开启了各种debug特性的版本的debuginfo&#xff1b; kernel-debuginfo是普通正常线上运行的内核的debuginfo&#xff1b; 使用centos镜像发生crash调试需要使用kernel-debuginfo rpm&#xff0c;不然crash调试会报错&#xff0c;版本不匹…

Linux kernel rootfs(busybox)支持中文的配置

1. 内核(kernel)文件系统支持中文配置 内核源码路径下输入: make menuconfig选择进入File system(文件系统配置选项) DOS/FAT/NT Filesystems —> [] Network File Systems —> -- Native language support —>

centos 下 Makefile 独立模块编译ko

1、安装编译内核环境包 编译需要用到kernel 源码&#xff0c;centos 下需先安装 kernel-devel 包&#xff0c;要下与自己kernel 对应版本 yum install kernel-devel 2、首先从内核或自己写的模块&#xff0c;发到编译环境中 注&#xff1a;就像我自己拷贝一个 bcache 驱动的目…

EXPORT_SYMBOL的作用简单介绍

linux驱动代码中经常可以看到这个宏定义&#xff0c;那么这个宏定义的作用是什么呢&#xff1f; 其实就是在这个宏定义内的函数或者标签对整个内核是公开其符号表&#xff0c;意思就是直接可以在内核了得其他模块直接调用&#xff0c;而不需要修改内核代码。一个简单的例子&…

linux环境查看cpu是否开启睿频

linux环境下如何查看cpu开启睿频 方法一 [root@~rootbird]# cat /sys/devices/system/cpu/cpufreq/boost 1 表示开启 [root@~rootbird]# cat /sys/devices/system/cpu/cpufreq/boost 0 表示未开启 方法二 cpupower 查看,cpupower 工具旨在提供给定计算机上支持的所有 CPU 电…

block层:8. deadline调度器

deadline 源码基于5.10 0. 私有数据 struct deadline_data {/** run time data*//** requests (deadline_rq s) are present on both sort_list and fifo_list*/struct rb_root sort_list[2];struct list_head fifo_list[2];/** next in sort order. read, write or both ar…

Linux 内核启动及文件系统加载过程

&#xfeff;&#xfeff;转自&#xff1a;http://www.tuicool.com/articles/NzAb2i 当 u-boot 开始执行 bootcmd 命令&#xff0c;就进入 Linux 内核启动阶段&#xff0c;与 u-boot 类似&#xff0c;普通 Linux 内核的启动过程也可以分为两个阶段&#xff0c;但针对压缩了的…

git快速查看某个文件修改的所有commit

1. git blame file git blame 可以显示历史修改的每一行记录,有时候我们只想了解某个文件一共提交几次commit,只显示commit列表,这种方式显然不满足要求。 2.git log常规使用 (1)显示整个project的所有commit (2)显示某个文件的所有commit 这是git log不添加参数的常规…

Linux 虚拟文件系统

引言 本文整理了 Linux 内核中虚拟文件系统的相关知识。更多相关文章和其他文章均收录于贝贝猫的文章目录。 虚拟文件系统 为了支持各种本机文件系统&#xff0c;且同时允许访问其他操作系统的文件&#xff0c;Linux 内核在用户进程与实际文件系统实现之间引入了一个抽象层&a…

NVMe over Fabrics with SPDK with iRDMA总结 - 3

6.0 Configure and Test NVMe over Fabrics Host(s) to Connect to SPDK Target配置和测试 NVMe over Fabrics 主机以连接 SPDK 目标机 The SPDK NVMe-oF target system is spec compliant, which allows for the use of either an SPDK host or Linux Kernel host to co…

linux内核态用户态

概述 linux系统用户态和内核态相关知识&#xff0c;linux内核版本为3.10.79。 用户态和内核态定义 内核态: CPU可以访问内存所有资源, 包括外围设备. 可以进行处理器工作模式切换&#xff0c;程序的切换。 用户态: 只能受限的访问内存, 且不允许访问外围设备&#xff0c;不可…

mmap内核源码分析,基于内核版本3.10(一)

最近项目需要使用到mmap&#xff0c;因此对mmap内核中的实现进行学习&#xff0c;该博客基于Linux-3.10&#xff0c;相近版本可以做参考&#xff0c;如果版本跨度大需结合对应版本来进行学习。 一个用户态程序可以通过调用libc中的mmap()&#xff0c;将一个已打开文件的内容映…

GEE中核函数在不同缩放级别下的区别

问题&#xff1a; 2个问题&#xff1a; 1. 内核都采用单位参数&#xff0c;可以是像素或米&#xff0c;文档指出&#xff1a; 内核的测量系统&#xff08;“像素”或“米”&#xff09;。如果内核以米为单位指定&#xff0c;则当缩放级别更改时它将调整大小。 我认为这是不正确…

6818开发板uboot、kernel、rootfs编译记录

目录 文章目录目录前言编译环境介绍uboot编译记录kernel编译记录kernel添加摄像头驱动kernel添加HDMI接口驱动kernel添加OV5645(MIPI)接口驱动rootfs编译记录总结参考链接前言 因为前面编译过一次6818的uboot、kernel和rootfs。但是是在root用户下编译的&#xff0c;结果在开发…

Linux内核系列(二) 如何阅读源码

现代的操作系统一般由进程管理、内存管理、文件系统、驱动程序、网络等组成。linux内核源代码各个目录就可以大致了解对应哪些方面&#xff1a; 1&#xff09;arch 这个子目录包含了此核心源代码所支持的硬件体系结构相关的核心代码。如对于X86平台就是i386。 2&#xff09;in…

从tty到uart层,分析uart数据流程(二)

上一节中&#xff0c;我们主要了解了uart的一些重要的数据结构&#xff0c;和uart的发送数据的流程。下来我们会分析uart接受数据的流程&#xff0c;和发送比较起来&#xff0c;收流程更加复杂一点&#xff01;关于发送流程&#xff0c;我们会从底层一步一步分析&#xff0c;直…

等待队列队列机制

等待队列机制等待队列队列操作初始化等待队列项添加等待队列项移除队列项唤醒等待队列 等待队列是一种基于资源状态的线程管理的机制&#xff0c;它可以使用在资源不满足的情况下处于休眠状态&#xff0c;让出CPU资源&#xff0c;而资源状态满足时唤醒线程&#xff0c;使其继续…

CentOS/Red Hat 系 Linux 使用记录

这里写目录标题1. CentOS/Red Hat 系 Linux 使用记录1.1. EPEL1.1.1. 什么是 EPEL, 为何经常要安装 epel-release 软件包1.1.2. EPEL 清华镜像配置1. CentOS/Red Hat 系 Linux 使用记录 这里记录与其它 Linux 系不同的地方。 1.1. EPEL 1.1.1. 什么是 EPEL, 为何经常要安装 …

linux kernel物理内存概述(一)

目录 处理器架构 内存屏障产生的原因 物理内存概述 处理器访问内存时间 用户态常用的内存申请API 处理器架构 ARMV8 虚拟化和安全特性在ARMV7架构中已经实现&#xff0c;但对大内存的支持不够&#xff0c;虽然可以通过大物理内存地址扩展支持40位的物理地址空间&#xff…

从tty到uart层,分析uart数据流程(一)

(本文分析基于linux3.2.0) 关于Uart 和tty的关系&#xff0c;在此不必多谈&#xff0c;总之uart driver 是基于tty实现&#xff01;下面我们直指主题&#xff1a; 一. tty层的架构 关于tty层的架构&#xff0c;这个图是最好的描述&#xff1a; 其中读&#xff0c;写数据必须…

【Linux内核】内核编程概述

1.GNU GNU计划和自由软件基金会&#xff08;FSF&#xff09;是由Richard M.Stallman于1984年创办的&#xff0c;GNU是“GNU’s Not UNIX”的缩写。到20世纪90年代初&#xff0c;GNU项目已经开发出许多高质量的免费软件&#xff0c;其中包括emacs编辑系统、bash shell程序、gcc…

could not create shared memory segment: 设备上没有空间

[postgresdb223 home]$ pg_ctl start waiting for server to start....2023-08-17 18:51:47.852 CST [1281811] FATAL: could not create shared memory segment: 设备上没有空间 2023-08-17 18:51:47.852 CST [1281811] DETAIL: Failed system call was shmget(key161594131…

linux kernel物理内存概述(二)

目录 物理内存数据结构 设备数物理内存描述 物理内存映射 map_kernel map_mem zone数据结构 zone类型 物理内存数据结构 站在处理器角度&#xff0c;管理物理内存的最小单位是页面。使用page数据结构描述&#xff0c;通常默认大小4kB&#xff0c;采用mem_map[]数组来存…

Linux drm内存管理(二) TTM内存管理基础概念

正文 通过之前的文章Linux drm内存管理(一) 浅谈TTM与GEM&#xff0c;为什么我们需要TTM和GEM&#xff1f;   我们知道了TTM是在GEM的基础上实现的一套GPU内存管理框架&#xff0c;所以这篇文章介绍的侧重点是TTM是如何实现管理GPU内存的分配与释放&#xff0c;先了解TTM的思…

container_of解析及应用

container_of是一个C语言中比较少见&#xff0c;但实际经常用到的宏&#xff0c;在Linux kernel中也有大范围的应用。

Windows内核--任务、进程和线程(2.4)

图片来自: Windows内核原理与实现 Windows内核有"任务"概念吗? 从技术术语来说&#xff0c;Windows内核并没有"任务"。"任务"一般被认为是抽象的需要执行的事情。在不同操作系统上&#xff0c;"任务"所代表的官方名称有所差异。 Linu…

Chapter 8 - 19. Congestion Management in TCP Storage Networks

Queue Depth Monitoring and Microburst Detection Queue depth monitoring and microburst detection capture the events that may cause congestion at a lower granularity but are unnoticed by other means due to long polling intervals. 队列深度监控和微爆检测可捕捉…

block层:5. 请求分配

请求相关 源码基于5.10 1. 分配请求 static struct request *__blk_mq_alloc_request(struct blk_mq_alloc_data *data) {// 请求队列struct request_queue *q data->q;// 电梯struct elevator_queue *e q->elevator;u64 alloc_time_ns 0;unsigned int tag;// 判断…

ARMv7/ARMv8/ARMv9架构你不知道的那些事

快速链接: . &#x1f449;&#x1f449;&#x1f449; 个人博客笔记导读目录(全部) &#x1f448;&#x1f448;&#x1f448; 付费专栏-付费课程 【购买须知】: 【精选】ARMv8/ARMv9架构入门到精通-[目录] &#x1f448;&#x1f448;&#x1f448; 以下仅代表个人观点&…

ArmSom---I2C开发指南

1. 简介 RK3588从入门到精通 本⽂介绍在rockchip平台下如何配置i2c接口的方法并且添加调试验证i2c外设的例子 开发板&#xff1a;ArmSoM-W3 Kernel&#xff1a;5.10.160 OS&#xff1a;Debian11 2. i2c接口概述 i2c 总线控制器通过串行数据&#xff08;SDA&#xff09;线…

NVMe Over Fabrics with iRDMA总结 - 2

5.0 Configure NVMe over Fabrics Target (Storage Server) 配置 NVMe over Fabrics 目标机(存储服务器) 5.1 Install NVMe over Fabrics Tools安装 NVMe over Fabrics 工具 5.1.1 Install nvme-cli安装 nvme-cli Download nvme-cli from: 从以下网址下载 nvme-cli:https:…

SVM/LDM 中的一个优美的证明(个人觉得)

前言&#xff1a; 在读周志华的Large Margin Distribution Machine一文时看到的。 下面先简单回顾SVM&#xff0c;然后直接讲LDM&#xff0c;接着说看到的那个证明。其实也没啥。。 一言以蔽之&#xff0c;给定IID分布训练集S&#xff0c;SVM的假设函数是一个线性模型f(x)w T…

Linux kernel打印栈信息方法

在kernel代码的任意位置直接调用dump_stack方法即可。dump_stack已经包含在内核符号表中&#xff0c;并在include/linux/kernel.h中被声明。获取栈信息的原理是使用ebp逐层回溯。dump_stack函数在arch/x86/kernel/traps_32.c中定义(kernel 2.6.24)如下&#xff1a; /** The ar…

NVMe over Fabrics with SPDK with iRDMA总结 - 2

4.0 Configure and Test RDMA (All Servers) 配置并测试 RDMA(所有服务器) 4.1 Install Intel LAN Driver, RDMA Driver, and Related Dependencies安装英特尔 LAN 驱动程序、RDMA 驱动程序和相关依赖软件 Download the latest Linux driver package from Intel f…

[RK-Linux] 移植Linux-5.10到RK3399(四)| 检查HDMI配置与打开内核LOGO显示

文章目录 一、HDMI二、VOP三、显示内核LOGO一、HDMI RK3399 的 HDMI 接口如图: datasheet 介绍: HDMI 接口各个引脚的作用如下: 接口标签作用HDMI_TX0P HDMI_TX0PA差分信号线,用于传输 HDMI 通道 0 的正向数据HDMI_TX0N HDMI_TX0NA

实现最简的内核模块

实现最简单的内核模块&#xff0c;可从中窥探内核模块的编写流程。同时&#xff0c;也可以在其上进行扩展&#xff0c;对内核函数和全局变量进行调用和打印&#xff0c;熟悉内核接口。 在实现最简内核模块之前&#xff0c;在本地安装配置开发环境。可用选择使用vagrant工具快速…

基于aarch64分析kernel源码 四:printk 内核打印

一、参考 Message logging with printk — The Linux Kernel documentation 如何获得正确的printk格式占位符 — The Linux Kernel documentation 使用printk记录消息 — The Linux Kernel documentation printk 内核打印 – 人人都懂物联网 (getiot.tech) 内核printk原理…

RK356x U-Boot研究所(开发篇)5.3 Kernel-DTB的使用

平台U-Boot 版本Linux SDK 版本RK356x2017.09v1.2.3文章目录 一、背景二、Live device tree三、机制实现四、DTB 文件五、定制 DTB 文件六、加载distro dtb方式一、背景 U-Boot 的原生架构要求一块板子必须对应一份 U-Boot dts,并且U-Boot dts生成的dtb是打包到U-Boot自己的镜…

Linux中断 -- 中断应答、嵌套、

接上文&#xff0c;本文继续介绍Linux软件部分逻辑。 参考内核版本&#xff1a;kernel-4.19 目录 1.中断信号在各级中断控制器中的应答 2.supports_deactivate_key意义 3.中断嵌套 1.中断信号在各级中断控制器中的应答 本章主要从内核软件层面来看各中断控制器对中断信号处…

机器学习中的算法(2)-支持向量机(SVM)基础

原文地址为&#xff1a; 机器学习中的算法(2)-支持向量机(SVM)基础版权声明&#xff1a; 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用&#xff0c;但请注明出处&#xff0c;如果有问题&#xff0c;请联系wheeleastgmail.com。也…

内核实验(五):传统简单字符设备驱动

文章目录一、篇头二、源码2.1 驱动关键部分2.2 APP&#xff1a;test\_3\_app.c2.3 驱动完整源码2.4 Makefile三、编译3.1 编译ko3.2 编译app四、测试4.1 部署4.2 测试4.2.1 启动qemu虚拟机4.2.2 运行测试文件4.2.3 查看设备情况五、篇尾一、篇头 目标是把内核相关部分的实验都…

树莓派驱动框架

1.树莓派底层驱动框架&#xff1a; #include <linux/fs.h> //file_operations声明 #include <linux/module.h> //module_init module_exit声明 #include <linux/init.h> //__init __exit 宏定义声明 #include <linux/device.h> //cl…

Chapter 7. Congestion Management in Ethernet Storage Networks以太网存储网络的拥塞管理 - 2

Location of Ingress No-Drop Queues入口无损队列的位置 Ingress queues for no-drop traffic are maintained by all the ports in a lossless Ethernet network. For the sake of simplicity, Figure 7-1 shows ingress no-drop queue(s) only at one location, but in real…

内核printk日志信息的级别

日志级别一共有8个级别&#xff0c;printk的日志级别定义如下&#xff08;在include/linux/kernel.h中&#xff09;&#xff1a;   #define KERN_EMERG 0/*紧急事件消息&#xff0c;系统崩溃之前提示&#xff0c;表示系统不可用*/   #define KERN_ALERT 1/*报告消息&…

CUDA学习笔记(二)——核函数简单例程

先看代码&#xff0c;再说细节。 // kernel __global__ void plus_array(int *x, int* y, int* z, int len){int index threadIdx.x blockIdx.x * blockDIm.x;if (index < len)z[index] x[index] * y[index]; }int main(){int num 1 << 20;int buff_size num * …

Python虚拟环境轻松配置:Jupyter Notebook中的内核管理指南

问题 在Python开发中&#xff0c;一些人在服务器上使用Jupyter Notebook中进行开发。一般是创建虚拟环境后&#xff0c;向Jupyter notebook中添加虚拟环境中的Kernel&#xff0c;后续新建Notebook中在该Kernel中进行开发&#xff0c;这里记录一下如何创建Python虚拟环境以及添…

MACHINE_START and MACHINE_END

&#xfeff;&#xfeff;topdir/arch/arm/mach-xxxx/board-xxxx.c 文件中通常有这样一段代码&#xff1a;1 MACHINE_START(MINI6410, "MINI6410") 2 /* Maintainer: Ben Dooks <ben-linuxfluff.org> */ 3 .boot_params S3C64XX_PA_SDRAM …

Linux内核镜像格式

文章目录Linux内核镜像格式常用Linux 内核镜像格式kernel镜像格式&#xff1a;vmlinuxkernel 镜像模式&#xff1a;Imagekernel 镜像格式&#xff1a;zImagekernel镜像模式&#xff1a;bzImagekernel 镜像模式&#xff1a;uImagekernel镜像格式&#xff1a;xipImage参考Linux内…

1. VirtualBox安装CentOS

安装 VirtualBox 地址:https://www.virtualbox.org/wiki/Downloads 版本: 6.1和7.0+版本都可以 安装: windows上安装需要admin权限,右键菜单选中 “Run as administrator” 安装 CentOS 6.10 地址:https://vault.centos.org/6.10/isos/x86_64/ 版本: 如果不需要GUI,选择…

Linux 进程虚拟内存

引言 本文整理了 Linux 内核中进程虚拟内存的相关知识。更多相关文章和其他文章均收录于贝贝猫的文章目录。 进程虚拟内存 虚拟地址空间 各个进程的虚拟地址空间起始于 0&#xff0c;一直到 TASK_SIZE - 1&#xff0c;其上是内核地址空间。在 IA-32 系统上地址空间的范围是 …

NVMe over Fabrics with SPDK with iRDMA总结 - 1

1.0 Introduction简介 NVM Express* (NVMe*) drives are high-speed, low-latency, solid-state drives (SSDs), that connect over the server Peripheral Component Interconnect Express* (PCIe*) bus. NVM Express* (NVMe*) 硬盘是高速、低延迟的固态硬盘 (SSD),通过服…

u-boot分析与使用

文章目录一、u-boot介绍二、u-boot源码结构三、u-boot打补丁、编译、烧写四、uboot功能、结构&#xff0c;结合Makefile进行分析五、u-boot分析之源码阶段六、u-boot分析之命令实现七、uboot启动内核一、u-boot介绍 u-boot即通用的BootLoader&#xff0c;是遵循GPL条款的开放源…

Rockchip(瑞芯微) 烧写报“校验芯片失败”问题解决

Rockchip 烧写报“校验芯片失败”问题解决 1. 固件烧写报此问题2. 分区烧写报此问题1. 固件烧写报此问题 量产工具在下载固件时提示校验芯片失败,这种问题一般都是固件选择错了,固件和芯片不匹配。在开发阶段,可能会是打包固件时参数配置错了。 开发工具不会校验芯片信息,…

Linux系统的组成部分及发行版本

一、Linux系统组成部分 1、内核——Kernel 2、Shell——命令行解释器 3、文件系统 4、硬件 二、十大Linux发行版本 将 Linux 发行版在 Linux 用户群体中的广泛使用度作为衡量的标准&#xff0c;汇集成十大 Linux 发行版。外加上 FreeBSD&#xff0c;总计 11 套系统。 十…

台湾国立大学机器学习技法.听课笔记(第四讲) :Soft-Margin Support Vector Machine

台湾国立大学机器学习技法.听课笔记&#xff08;第四讲&#xff09; :Soft-Margin Support Vector Machine 一,Motivation and Primal Problems 我们从第一讲到第三讲&#xff0c;都是说Hard-Margin SVM&#xff0c;要求全部的点都要进行正确划分&#xff0c;太完美了&#…

台湾国立大学机器学习技法.听课笔记(第六讲):Support Vector Regression

台湾国立大学机器学习技法.听课笔记&#xff08;第六讲&#xff09; :Support Vector Regression 一&#xff0c;Kernel Ridge Regression 1.提出线性岭回归问题 我们上一讲学习了解决Two-level的问题时&#xff0c;我们可以用两种方法解决&#xff1a; 我们上一讲是的Repres…

《Linux驱动》iTop4412开发板LCD驱动 详细分析 (一)

在kernel中有device和driver两个描述. 一&#xff0e;先看device 在palt-s5p/dev-fimd-s5p.c 定义了一个 struct platform_device s3c_device_fb 平台设备 #ifdef CONFIG_FB_S5P // 选择开关 static struct resource s3cfb_resource[] {[0] {.start S5P_PA_FIMD0, /…

CentOS使用yum update更新时不升级内核的方法

引言&#xff1a;由于系统与硬件的兼容性问题&#xff0c;有可能升级内核后导致服务器不能正常启动&#xff0c;这是非常可怕的&#xff0c;没有特别的需要&#xff0c;建议不要随意升级内核。 CentOS使用yum update更新时不升级内核 cp /etc…

原语,原子,线程安全

原子操作和原语是计算机科学中常见的概念&#xff0c;通常用于多线程或多进程环境中&#xff0c;以确保数据的一致性和同步。 原子操作&#xff08;Atomic Operations&#xff09; 原子操作是不可再分的操作&#xff0c;在执行完毕之前不会被线程调度系统中断的操作。从外部看…

addr2line 使用,定位kernel panic 代码位置

在kernel崩溃时&#xff0c;方便定位代码。 需要打开kernel配置CONFIG_DEBUG_INFO。 需要有System.map和vmlinux文件&#xff0c;一般在out目录。 一般panic的时候会有给出panic的指针&#xff0c;如下down_write。 el1_data说明发生异常了&#xff0c;进入和entry.S文件&a…

Chapter 7. Congestion Management in Ethernet Storage Networks以太网存储网络的拥塞管理 - 1

This chapter covers the following topics. 本章涵盖以下主题 Ethernet flow control. 以太网流量控制 Priority-based Flow Control at layer 2 and layer 3 of the OSI model. OSI 模型第 2 层和第 3 层基于优先级的流量控制。 Congestion spreading in lossless Ethernet n…

Linux中断 -- 中断路由、优先级、数据和标识

目录 1.中断路由 2.中断优先级 3.中断平衡 4.Linux内核中重要的数据结构 5.中断标识 承前文&#xff0c;本文从中断路由、优先级、数据结构和标识意义等方面对Linux内核中断进行一步的解析。 1.中断路由 Aset affinity flow GIC文中有提到SPI类型中断的路由控制器寄存器为…

添加Linux系统调用(ubuntu, 3.13.0)

环境&#xff1a;Ubuntu 14.04 64位 内核版本&#xff1a;3.13.0 下载Linux源码 安装必备软件 apt-get gcc make libncurses5-dev 下载源码 apt-get linux-source 下载后的源码在/usr/src下面 我的是/usr/src/linux-source-3.13.0/linux-source-3.13.0.tar.bz2 解压&a…

第三十四期-ARM Linux内核的中断(4)

作者&#xff1a;罗宇哲&#xff0c;中国科学院软件研究所智能软件研究中心 上一期中我们介绍了ARM Linux内核中外设中断处理的部分流程&#xff0c;这一期我们将继续介绍ARM Linux内核的外设中断处理流程中与中断描述符相关的部分。 一、ARM Linux内核的中断描述符 上一期我…

Linux 进程管理与调度

引言 本文整理了 Linux 内核中进程管理与调度的相关知识。更多相关文章和其他文章均收录于贝贝猫的文章目录。 进程管理与调度 现代操作系统都能同时运行多个进程&#xff0c;至少从用户的角度来看是这个样子的。每一个处理器上某一指定时刻只能有一个程序可以运行&#xff0…

Linux Kernel 之十 虚拟化、VirtIO 架构及规范、VirtQueue VRing

VirtIO 是一种 IO 半虚拟化解决方案&#xff0c;它提供 Guest OS 与 Hypervisor 虚拟化设备之间的通信框架和编程接口。其主要的优势是能提高性能且减少跨平台带来的兼容性问题。本文重点结合 VirtIO 规范 1.1 版以及 Linux 中的源码来分析 VirtIO 框架。 本文是我自己学习虚拟…

tcp拥塞算法分析五(vegas)

本文分析linux-4.14.69代码的vegas拥塞算法 传统的基于丢包的拥塞算法&#xff08;例如cubic,reno&#xff09;都是&#xff08;填满网络直到&#xff09;有丢包了就认为出现拥塞&#xff0e;vegas会根据rtt来计算网络吞吐量和当前实际传输量&#xff0c;来判断是否出现拥塞&a…

页错误处理 Page Fault Handling

原文链接&#xff1a; http://www.informit.com/articles/article.aspx?p29961&seqNum5 当一个进程要访问一个虚拟页&#xff0c;而这个虚拟页对应的PTE不在页表中&#xff0c; 或者这个PTE在某种方式上禁止访问&#xff0c;比如这页不存在或者访问模式跟这页的访问权限冲…

eBpf技术总结

一、 ebpf基本原理 eBPF (扩展的伯克利数据包过滤器) 是一项强大的网络和性能分析工具&#xff0c;其在内核中的实现为一个基于寄存器的虚拟机&#xff0c;使用自定义的 64 位 RISC 指令集&#xff0c;运行本地即时编译&#xff08;JIT&#xff09;的 “BPF 程序&#xff0c; …

block层:3. plug机制

plug 机制 源码基于5.10 blk_start_plug void blk_start_plug(struct blk_plug *plug) {struct task_struct *tsk current;// 该进程已经有了plugif (tsk->plug)return;// 一些基本的初始化INIT_LIST_HEAD(&plug->mq_list);INIT_LIST_HEAD(&plug->cb_list…

信创环境 Phytium S2500 虚拟机最大内存规格测试

在 ARM 架构中,"IPA" 通常指的是 "Instruction Set Architecture"(指令集架构),arm环境的虚拟机支持的最大内存规格与母机上内存多少无关,由arm本身的ipa size决定,ipa size 可以理解为虚拟机的物理地址空间,kernel5.4.32中ipa默认是44bits(16T si…

kasan排查kernel内存越界示例(linux5.18.11)

参考资料&#xff1a; 1&#xff0c;内核源码目录中的Documentation\dev-tools\kasan.rst 2&#xff0c;KASAN - Kernel Address Sanitizer | Naveen Naidu (naveenaidu.dev) 一、kasan实现原理 KASAN&#xff08;Kernel Address SANitizer&#xff09;是一个动态内存非法访…

ebpf代码编写小技巧

查看所有tracepoint perf list perf追踪tracepoint perf trace --no-syscalls --event net:*查看tracepoint的具体参数 sudo python3 /usr/share/bcc/tools/tplist -v net:napi_gro_receive_entry cat /sys/kernel/debug/tracing/events/net/netif_rx/format内核vmlinux.h生…

一、在GPU上执行运算

本文Demo 环境&#xff1a; mac os 10.14.5 xcode 10.3 此系列文章源自官方案例&#xff0c;详情至 此处 专用名词虽有汉字翻译&#xff0c;但会保留原有英文形式名词。 概述 在此示例中&#xff0c;会学习在所有 Metal apps 中使用到的基本要素&#xff1a; a&#xff…

Android 9.0 kenel和frameworks中修改ram运行内存的功能实现

1.前言 在9.0的系统rom产品开发定制中,在对一些产品开发中的配置需求方面,在产品后续订单中,在某些机型中需要升级下系统内核配置,项目时间比较仓促,所以 来不及对硬件重新定制,就需要软件方面在ram运行内存的容量大小方面作假,修改ram真实的大小容量,所以就需要在ken…

linux kernel物理内存概述(三)

目录 物理内存空间划分 物理内存初始化 查看当前页面分配状态 页块 页面如何添加到伙伴系统中&#xff1f; 物理内存空间划分 32位系统 4GB 用户空间和内核空间划分 3&#xff1a;1 ARM64架构处理器虚拟地址空间划分方式&#xff1b; 内核中使用PAGE_OFFSET宏计算 内核线…

Centos6 没有eth0 其他网口(p4p1)转eth0

Centos6 没有eth0 其他网口(p4p1)转eth0 vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICEeth0 NAME"System eth0" vi /etc/udev/rules.d/70-persistent-net.rules KERNEL"eth*", NAME"eth0" reboot后一般都生效&#xff0c;但restart…

小议Linux staging tree

2.6.28版本起&#xff0c;内核代码的drivers下增加了一个staging目录&#xff0c;这个目录也是用来存放驱动程序&#xff0c;只是这里的驱动和上层目录的不同&#xff0c;加载的时候内核log会打印如下的语句&#xff1a; MODULE_NAME: module is from the staging directory, t…

如何下载Linux源码,看这篇就够了!

文章目录 前言一、linux官网二、查找发布版本三、下载方式 前言 在工作中&#xff0c;我们难免会遇到需要去找某个版本的linux源码的情况&#xff0c;今天这篇文章就手把手教大家如何找到自己想要的linux源码版本 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例…

手动升级内核(内核迁移至内网主机)

文章目录 内核编译内网主机内核替换 手动升级内核&#xff08;内核迁移至内网主机&#xff09; 给当前主机升级内核有现成的命令可以直接使用&#xff0c;但是依赖网络环境&#xff0c;而且涉及定制内核参数的话&#xff0c;编译内核耗时较长&#xff0c;下面总结一种简单的方…

mtd分区和mtdblock创建

首先需要设置uboot的传入参数&#xff0c;以下为我使用的参数&#xff1a; "mtdpartsspi32766.0:240K(uboot)ro,16k(dtb)ro,2560k(kernel)ro,64k(param),-(rootfs) root31:04 rw rootfstypejffs2" 这里添加param 分区拿来自己使用。这里64k(param)&#xff0c;64k为…

Linux kernel内存分配基础

结合工作中的实战经验&#xff0c;以及工作中常用的内存管理知识点。想写一篇文章&#xff0c;介绍一下kernel的内存分配基础知识。让大家对kernel内存管理有一个基本的认识。 基本概念 Node Zone Page Memblock Buddy Slub Malloc 缺页异常 分配匿名页 内核触发页面回收的机…

bootm报错之解决

bootm挂载nfs文件的系统的时候报错&#xff0c;错误如下&#xff1a; Failed to execute /linuxrc. Attempting defaults… Kernel panic - not syncin 解决&#xff1a;发现是bootagrs启动命令被改动了&#xff0c;更改为nfs挂载启动即可。 setenv bootargs noinitrd con…

Linux Kernel的local_irq_enable()和local_irq_disable()函数

代码如下图所示&#xff0c;最终操作的是msr daifset, #3 和 msr daifclr, #3 寄存器。 (include/linux/irqflags.h) #define local_irq_enable() do { raw_local_irq_enable(); } while (0) #define local_irq_disable() do { raw_local_irq_disable(); } while (0)#define ra…

内核、设备树、文件系统

一、什么是内核 Linux内核就像人的心脏&#xff0c;灵魂&#xff0c;指挥中心。内核是一个操作系统的核心,它负责管理系统的进程&#xff0c;内存&#xff0c;设备驱动程序&#xff0c;文件和网络系统&#xff0c;决定着系统的性能和稳定性。内核以独占的方式执行最底层任务&a…

iRDMA流量控制总结 - 1

1.0 内容简介 This will introduce Ethernet flow control on Intel Ethernet 800 Series Network Adapters with RDMA driver - iRDMA, with a focus on best practices for Linux RDMA traffic. 我们将介绍英特尔以太网 800 系列网络适配器上的以太网流量控制与 RDMA 驱动程序…

【C语言笔记】【宏定义系列】 编译时检查 2

【C语言笔记】【linux宏定义系列】 编译时检查 2 linux宏定义系列内容。用于记录在linux kernel之中各式各样的宏定义☺。 宏定义说明 用于在编译时检查一个条件是否为真&#xff0c;如果条件为真则会编译失败&#xff0c;编译器报错&#xff0c;反之如果条件为假&#xff0…

物理内存分配

目录 内核物理内存分配接口 内存分配行为&#xff08;物理上&#xff09; 内存分配的行为操作 内存 三个水位线 水线计算 水位线影响内存分配行为 内存分配核心__alloc_pages 释放页 1、内核物理内存分配接口 struct page *alloc_pages(gfp_t gfp, unsigned int ord…

使用QEMU搭建U-Boot+LinuxKernel+busybox+NFS嵌入式开发环境

目录 0.课程大纲1.为什么要使用QEMU学习嵌入式QEMU简介使用QEMU可以做哪些事情?当前嵌入式行业现状如何适应这种变化使用QEMU学习嵌入式有哪些好处?驱动开发技能为什么要学习Linux 2.搭建嵌入式开发基本环境2.1.安装u-boot-tools2.2.安装交叉编译工具什么是ABI和EABI 3.QEMU安…

Linux: sched: might_sleep; 一个调试函数,演变为真实的睡眠函数,实至名归

#define might_sleep() do { might_resched(); } while (0) #ifdef CONFIG_PREEMPT_VOLUNTARY extern int _cond_resched(void); # define might_resched() _cond_resched()int __sched _cond_resched(void) {if (

linux -- per-CPU变量

per-CPU变量 per-CPU变量是一种存在与每个CPU本地的变量&#xff0c;对于每一种per-CPU变量&#xff0c;每个CPU在本地都有一份它的副本。 per-CPU变量的优点 多处理器系统(smp)中无需考虑与其他处理器的竞争问题(并非绝对的)可以利用处理器本地的cache硬件&#xff0c;提高…

ATF源码篇(九):docs文件夹-Components组件(8)固件升级

固件更新&#xff08;FWU&#xff09; 本文档描述了TF-A中可用的各种固件更新&#xff08;FWU&#xff09;机制的设计。 1、PSA固件更新&#xff08;PSA FWU&#xff09;-平台安全架构2、TBBR固件更新&#xff08;TBBR FWU&#xff09;-可信板引导要求 PSA固件更新实施了同名…

【IMX6ULL驱动开发学习】23.驱动模块开发之Makefile解析

编写完驱动代码后要编写Makefile&#xff0c;并使用make进行编译&#xff0c;这里举一个最经典的驱动模块的Makefile写法 KERN_DIR /home/me/内核路径PWD ? $(shell pwd)all: make -C $(KERN_DIR) M$(PWD) modules$(CROSS_COMPILE)gcc -o xxx_app xxx_app.cclean:make -C $(…

树莓派内核编译与升级-树莓派自身编译(四)

用树莓派自身进行编译&#xff0c;首先需要安装树莓派下缺少的库&#xff1a; sudo apt-get install git bc 安装git是为了可以用git获取源码&#xff0c;源码获取方式和上面一样。 配置 cd linux KERNELkernel7 make bcm2709_defconfig 编译与更新 make -j4 zImage mo…

ARM kernel 内核的移植 - 从三星官方内核开始移植

一、内核移植初体验 1、三星官方移植版内核获取 (1) 从网盘下载源码包。 (2) 这个文件最初是来自于三星的 SMDKV210 开发板附带的光盘资料。 2、构建移植环境 (1) Windows下建立工程。 (2) ubuntu下解压。 3、配置编译下载尝试 (1) 检查 Makefile 中 ARCH 和 CROSS_COMPI…

机器学习中的kernel是什么?(待补充)

近来看到SVM和核化线性降维KPCA&#xff0c;对其中的核函数难以理解&#xff0c;因此去查阅了众多资料&#xff0c;接下来简单记录总结下对kernel的认识。 知乎问题链接 参考 kernel是什么 &#xff1f; 首先我们先给出kernel的定义&#xff1a;核函数(kernel function)就是指…

LiteOS 知:目录结构

内核代码在kernel目录下&#xff0c;关于代码树中各个目录存放的源代码的相关内容介绍如下&#xff1a; PS D:\projects\os\LiteOS\kernel> tree 卷 新加卷 的文件夹 PATH 列表 卷序列号为 F637-6948 D:. ├─base │ ├─debug │ ├─include │ ├─mem │ │ ├─…

(安卓)linux常用驱动

Kernel: 3.10.49 平台&#xff1a;RK3399要求&#xff1a;提供一个节点&#xff0c;可以控制GPIO的输出状态。RK平台GPIO号的计算如&#xff1a;gpio1_A7 :1x320x8739 gpio0_B5 : 0x321x8513 gpio3_C3 : 3x322x83115 gpio_direction_output(115,1);MTKGPIO号的计算gpio31&#…

ubuntu下第一个内核模块

1.文件准备 新建hello.c Makefile在同级目录下 2.hello.c #include<linux/module.h>//所有模块都要使用头文件module.h&#xff0c;此文件必须包含进来 #include<linux/kernel.h>//头文件kernel.h包含了常用的内核函数。 #include<linux/init.h>//头文件ini…

Linux kernel的likely与unlikely

为什么使用likely与unlikely 在Linux kernel的源码中&#xff0c;存在这样的用法&#xff1a; if (likely(cond)) {...... }if (unlikely(cond)) {...... }likely和unlikely是宏定义&#xff0c;若cond为真&#xff08;非0&#xff09;&#xff0c;那么likely(cond)为真&…

KE-之单机案例分析

目录 一、背景&#xff1a; 二、第一份KE分析 三、第二份KE分析 四、总结 一、背景&#xff1a; 单台机器出现2例KE&#xff0c;且位置随机都在开机几秒内出现&#xff0c;从经验来看&#xff0c;偏单体&#xff0c;可以通过gdb minidump的方式进行简单推导 二、第一份K…

FT2000+ qemu kvm 64C64G 通过频繁设置CPU online 状态导致虚拟机openEuler 操作系统假死测试用例2

前文&#xff1a; https://hknaruto.blog.csdn.net/article/details/130408240 测试程序 /** tcti.cpp参考&#xff1a; https://www.cnblogs.com/organic/p/17321523.htmlg -stdc11 -lpthread trigger_cgroup_timer_inactive.cpp -o inactive_timer ./inactive_timer 100000…