- 博客(17)
- 收藏
- 关注
原创 g_hash_table_foreach_remove错误使用导致进程异常
没有具体分析g_hast_table的实现,根据网上查询的信息,发现该报错是英文在g_hash_table_foreach_remove的函数中对hash_table又执行了插入、删除等操作。所以简单看了下错误原因。排查了下项目代码,发现在g_hash_table_foreach_remove中又对hash表进行了删除,导致系统异常。补充一下:g_hash_table_foreach_remove的用法(来源于豆包:不得不说,豆包还是挺好用的)
2024-12-10 15:41:32
162
转载 Soft-iWARP的安装及验证
Soft-iWARP的安装及验证 —>亲测有效(保持ubuntu版本一致)一、安装reference: https://www.cnblogs.com/yu121/p/13358572.htmlRDMA需要专门的RDMA网卡或者InfiniBand卡,若没有这些硬件设备则可以使用Soft-iWARP。1、下载ubuntu-16.04.6-server-amd64.iso镜像,新建一个虚拟机,搭好2、安装好后查看版本号uname -srLinux 4.4.0-24-generic3、安
2021-11-02 16:52:33
971
原创 使用kvmtool启动一台最小虚拟机
使用kvmtool启动一台最小虚拟机1、编译kvmtool1.1 获取kvmtool源码git clone https://github.com/kvmtool/kvmtool.git1.2 编译kvmtool# 到kvmtool目录下cd kvmtool# 使用make命令编译make -j256编译过程中可能会遇到如下报错:这是因为在Makefile中CFLAGS加了-Werror参数,将所有警告当做error处理。暴力解决方案,将Makefile中的-Werror参数注释掉。
2021-07-31 16:30:36
1823
6
原创 cpio压缩与解压
cpio解压文件cpio -div < yourfile.cpiocpio压缩文件find . | c -o --format=newc > yourfile.cpio往cpio中追加文件find append.file | cpio -o --format=newc >> yourfile.cpio
2021-06-29 17:29:11
3532
原创 kvmtool源码学习 patch02-04
patch02-04主要实现如下功能:(0)准备kvm结构体,用于和kvm内核模块沟通。struct kvm{ int fd; /* /dev/kvm */ int vmfd;};在main函数中创建一个kvm变量,并获取内核kvm设备fd。 struct kvm kvm; kvm.fd = open("/dev/kvm", O_RDWR);(1)校验kvm版本信息 ret = ioctl(kvm.fd, KVM_GET_API_VERSION,
2021-03-18 23:40:32
305
原创 kvmtool源码学习 patch01 Initial commit
前言kvmtool的代码相较于qemu源代码还是很友好的,很适合作为一名新手入门学习kvm相关内容。main函数流程分析int main(int argc, char *argv[]){ struct cpu *cpu; int fd; fd = open("/dev/kvm", O_RDWR); if (fd < 0) { die("open kvm failed!"); } cpu = cpu_new();
2021-03-18 00:05:39
485
原创 qemu内存模型--MemoryRegion结构体subregions&subregions_link详解
在qemu内存模型中,MemoryRegion可以说是最为重要的结构体之一,是qemu实现内存模型的基础,在MemoryRegion中定义了subregions和subregions_link两个成员变量,接下来主要分析一下这两个结构体成员变量的作用。(一)首先看一下这两个成员变量在MemoryRegion中是如何定义的struct MemoryRegion { /*some definiation*/ QTAILQ_HEAD(subregions, MemoryRegion) subre
2021-01-10 16:02:00
1083
原创 TAILQ链表队列详解
这几天在阅读qemu内存模型相关代码,发现在MemoryRegion结构体中使用了QTAIL_HEAD和QTAIL_ENTRY两个宏定义进行队列(链表)定义,然后使用QTAILQ_FOREACH,QTAILQ_INSERT_BEFORE,QTAILQ_INSERT_TAIL进行队列(链表)操作。其实在qemu源代码中好多处都用到了以上相关宏定义,今天花时间研究了一波这几个相关的宏定义,简单记录一下。先撇开qemu相关知识,就仅仅对以上几个宏定义进行分析TAILQ相关的宏定义主要有如下几个:TAILQ_
2021-01-10 00:38:30
5736
3
原创 insmod & depmod & modprobe的区别及用法
modprobe 和 insmode在linux下都用来加载模块,两者用法区别如下:(1)insmode需指定所需加载模块的路径,且只加载所指定的模块,如果所指定的模块依赖于其他模块,insmode不会自动添加,insmode使用方法如下:insmode 某路径/xxx.ko(2)modprobe相比较于insmode更加智能,使用modprob加载模块时只需指定模块名称而不是模块的路径,使用modprobe加载内核模块时,如果加载的模块依赖于其他模块,modprobe会自动加载被依赖的模块,比如我们需
2021-01-04 12:35:16
6436
转载 [linux-kernel] 手动触发Linux内核panic
手动触发linux内核panicreference:https://blog.youkuaiyun.com/weixin_30885111/article/details/99814379step1: echo 1 > /proc/sys/kernel/sysrq 或者如果不想每次运行上面的命令,可以echo “kernel.sysrq=1” >> /etc/sysctl.confstep2: echo c > /proc/sysrq-trigger...
2020-12-23 14:02:07
4953
原创 红帽版本与Linux内核版本对应关系
红帽版本与Linux内核版本对应关系红帽官网https://access.redhat.com/articles/3078#
2020-12-17 10:14:00
917
原创 Libvirt安装报错:configure: error: Cannot find a XDR library
查了一圈,发现需要安装如下包:libtirpc-devel参考链接:https://www.mail-archive.com/libvirt-users@redhat.com/msg12074.html
2020-10-13 17:12:44
1305
原创 Busybox编译报ld错误解决--/usr/bin/ld找不到lcrypt、lm、lresolv
静态编译BusyBox报错错误信息如下:/usr/bin/ld: 找不到 -lcrypt/usr/bin/ld: 找不到 -lm/usr/bin/ld: 找不到 -lresolv网上普遍的解决方法都是缺少链接,:参考如下但是尝试了上述方法并非有效。千辛万苦总算是找到一个靠谱的文章,链接,通过链接中所述方法可以解决上述报错。方法如下:在控制台分别执行如下三条命令,查看三条命令的输出特点:yum provides */libm.ayum provides */libresolv.ayum
2020-09-13 19:33:42
1525
6
原创 VirtualBox中Centos7配置静态IP和连接外网
有点小任性,考研途中突然想玩大数据,然后需要整个Hadoop集群,没想到在VirtualBox中安装好Centos7之后配置的静态IP无效,并且无法ping通外网,整了好一会,终于搞好了。简单记录一下,防止以后再踩坑。第一步,在VirtualBox中设置虚拟机的网卡,在这里,我们设置两张网卡,首先选择第一张网卡然后选择第二张网卡网卡选好之后,我们就可以启动我们的虚拟机啦。第二部,配置静...
2019-05-01 13:29:31
1586
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人