自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 linux kernel 负载均衡总结

EXPORT_SYMBOL(schedule);EXPORT_SYMBOL(wake_up_process);EXPORT_SYMBOL(default_wake_function);EXPORT_SYMBOL(__wake_up);EXPORT_SYMBOL_GPL(__wake_up_locked);EXPORT_SYMBOL_GPL(__wake_up_l

2015-10-13 09:59:10 1602 2

原创 linux 内核开发环境搭建

1.安装git,msmtp,git-emailyum install git,msmtp,git-email2.下载内核源代码git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git3.配置gitgit-config --global user.name "Lid

2015-07-01 15:10:00 2490

原创 Intel VMCS学习总结

VMX分为root模式和non root模式,VMCS通过VMPTRST,VMPTRLD修改。VMREAD,VMWRITE修改VMCS内容。VMXON,VMXOFF打开关闭VMX。VMLAUNCH,VMRESUMEVMCS状态的状态管理?VMPTRLD,转化为active,currentactive,currentVMCS的几个区

2015-06-20 16:59:25 4222

原创 qemu启动流程

1.主线程代码分析主线程主要是监控各种需要处理的请求的句柄,然后等相关事件触发后,进行相关的处理。下面是典型的主线程的调用栈,通过ppoll来监控事件。(gdb) bt#0  0x00007ffff618dd51 in ppoll () from /lib64/libc.so.6#1  0x000055555580fdbc in ppoll (__ss=0x

2015-06-17 21:16:55 4574

转载 samba服务配置

http://www.cnblogs.com/mchina/archive/2012/12/18/2816717.html

2015-03-02 11:03:43 435

原创 linux cache buffer区别

/proc/meminfo中有统计buffer和cache,这两个具体代表什么含义,最近分析了一下内核代码,希望可以解释清楚。[root@rhevm ~]# cat /proc/meminfoMemTotal:        5845796 kBMemFree:         3648956 kBBuffers:           42812 kBCached:

2015-02-26 16:25:31 1643

原创 vfs读写流程梳理

vfs read,系统调用流程:在/fs/read_write.c中实现。SYSCALL_DEFINE3(read, unsigned int, fd, char __user *, buf, size_t, count){    struct file *file;    ssize_t ret = -EBADF;    int fput_needed;    f

2015-02-26 13:45:45 6054

原创 linux bio学习总结

linux/block/blk-core.c定义void submit_bio(int rw, struct bio *bio)submit_bio调用generic_make_request(bio);加入到对应的请求队列。generic_make_request循环针对一个进行的所有bio调用__generic_make_request__generic

2015-02-25 13:59:44 10870

原创 屏障I/O处理

屏障IO的主要作用是禁止IO调度程序进行排序。主要的应用场景是日志文件系统,对于日志文件系统,需要确保日志首先真实的写入到存储中后,再进行实际修改文件系统的操作。屏蔽IO的接口。在提供bio的时候,增加REQ_FUA标签。对于屏蔽IO,主要分为几个阶段,屏蔽前冲刷,屏蔽,屏蔽后冲刷。blk_queue_bio函数处理:判断如果是有REQ_FUA标签,跳过io

2015-02-25 12:01:16 1304

原创 pcs常用命令

安装ha组件:yum install pcs fence-agents-all创建集群pcs cluster setup --start --name my_cluster z1.example.com z2.example.com启动集群服务pcs cluster enable --all查看集群状态pcs cluster status创建stonith设备

2015-01-27 21:53:04 26758 1

原创 glance学习总结

[root@control images(keystone_admin)]# systemctl list-units | grep glance

2014-10-04 20:41:22 3657

原创 nova学习总结

[root@control ~]# systemctl list-units | grep novaopenstack-nova-api.service                                                                loaded active running   OpenStack Nova API Serveropensta

2014-10-04 19:15:46 3479 1

原创 cinder组件学习

openstack-cinder-api.service                            loaded active running   OpenStack Cinder API Serveropenstack-cinder-backup.service                         loaded active running   OpenStack C

2014-10-02 16:30:43 2761

原创 Redhat Openstack5 安装步骤

subscription-manager repos --enable=rhel-6-server-rpmssubscription-manager repos --enable=rhel-6-server-openstack-foreman-rpmssubscription-manager repos --enable=rhel-server-rhscl-6-rpmsyum upda

2014-09-23 08:46:24 3449 2

原创 udev学习总结

udev规则文件的路径:/etc/udev/rules.d//lib/udev//rules.d/udev的规则获取顺序,/etc/udev/rules.d/ /lib/udev//rules.d/ 。并且按照数据依次读取。比如:[root@localhost rules.d]# ls60-fprint-autosuspend.rules  70-persi

2014-03-29 10:19:29 4035

原创 vdsm代码入口分析

init启动脚本:init启动脚本运行/usr/share/vdsm/vdsm后台进程,参数如下:/bin/bash -e /usr/share/vdsm/respawn --minlifetime 10 --daemon --masterpid /var/run/vdsm/respawn.pid /usr/share/vdsm/vdsm/usr/share/vdsm/vd

2014-03-15 15:27:50 2733

原创 qemu启动参数代码分析

/usr/libexec/qemu-kvm -name rhel6.5 -S-M pc-0.15 -enable-kvm -m 1024 -realtime mlock=off -smp 1,sockets=1,cores=1,threads=1 -uuid 8f338d83-41c1-9df6-d42f-851f13949359

2013-12-19 20:14:47 7253

原创 如何编译qemu-kvm

<br />1.执行./configure<br /> <br />如果遇到如下错误,需要安装zlib<br /><br />Error: zlib check failed<br />Make sure to have the zlib libs and headers installed.<br /><br />执行<br />sudo apt-get install zlib1g-dev<br /> <br />如果遇到如下错误,需要安装pciutils-dev<br />Error: l

2013-12-19 15:23:53 3451

原创 Red Hat Cluster Suite框架概述

Red Hat Cluster Suite(简称RHCS)提供了一套HA的框架,方便客户基于现有的应用,提供高性能、高可靠的业务服务。RHCS实际上是有一些组件集成起来,完成HA、分发的功能。主要包括如下组件:Cluster InfrastructureGFSCluster LVMGNBDLVS下面分别介绍一下各个组件的作用:Cluste

2013-11-20 14:53:17 1491

转载 misc_register函数

<br />杂项设备(misc device)<br />杂项设备也是在嵌入式系统中用得比较多的一种设备驱动。在 Linux内核的include/linux目录下有Miscdevice.h文件,要把自己定义的miscdevice从设备定义在这里。其实是因为这些字符设备不符合预先确定的字符设备范畴,所有这些设备采用主编号10,一起归于miscdevice,其实misc_register就是用主标号10调用register_chrdev()的。<br />也就是说,misc设备其实也就是特殊

2010-11-21 16:33:00 2848 1

原创 kvm开发环境搭建

1.sudo apt-get install git-gui2.apt-get -d install vim3.sudo apt-get install ctags4.git clone git://git/kernel.org/pub/scm/virt/kvm/qemu-kvm

2010-11-07 01:15:00 1566 1

原创 do_vmx_vcpu_run函数分析

开启VMX的代码VMexitVMEntry进入的时候,VMCS保存了那些寄存器;保存那些在HostOS State,退出的时候,从HostOS State中恢复,

2010-10-31 13:53:00 1773

原创 __direct_map函数分析

<br />static int __direct_map(struct kvm_vcpu *vcpu, gpa_t v, int write,<br />   int level, gfn_t gfn, pfn_t pfn)<br />/*<br />vcpu:对应vcpu的kvm_vcpu结构指针。<br />v:对应guestos物理地址在页帧的偏移量。<br />write:<br />level:设定页表的级别<br />gfn:guest os 的页帧号<br />pfn : host os 的

2010-10-27 00:13:00 1580

原创 KVM: Fix reboot on Intel hosts补丁分析

kvm模块在初始化的时候,注册了reboot回调:register_reboot_notifier(&kvm_reboot_notifier);在系统reboot的时候,执行如下操作:static int kvm_reboot(struct notifier_block *notifier, unsigned long val,        void *v){ /*  * Some (well, at least mine) BIOSes hang on reboot if  * in vmx root

2010-10-24 21:36:00 1644

原创 kvm.mmu_audit参数分析

<br />在kvm的参数中增加了如下参数,看看这个是什么功能<br /> <br /> kvm.mmu_audit= [KVM] This is a R/W parameter which allows audit<br />   KVM MMU at runtime.<br />   Default is 0 (off)<br /> <br /> <br />分析对应打开操作:<br />ret = register_trace_kvm_mmu_audit(kvm_mmu_audit, NULL);<b

2010-09-23 20:39:00 846

原创 for_each_shadow_entry宏分析

<br />for_each_shadow_entr三个参数的含义<br />_vcpu:对应kvm_vcpu结构体的指针。<br />_addr:如果是ETP的话,是GuestOS的物理地址<br />_walker:游标<br /> <br /> <br />#define for_each_shadow_entry(_vcpu, _addr, _walker)    /<br /> for (shadow_walk_init(&(_walker), _vcpu, _addr); /<br />    

2010-09-23 19:19:00 1235

原创 Return correct values in nested_svm_exit_handled_msr

<br />修改nested_svm_exit_handled_msr函数返回值为int,之前的代码错误的返回了bool。<br /> 

2010-09-12 21:49:00 651

原创 EPT学习总结及KVM的处理

EPT为了提升虚拟化内存映射的效率而提供的一项技术。打开EPT后,GuestOS运行时,通过页表转化出来的地址不再是真实的物理地址,而是被称作为guest-physical addresses,经过EPT的转化后才成为真实的物理地址。如果CR0.PG=0,GuestOS分页机制没有打开,直接使用线性地址作为guest-physical addresses,如果CR0.PG=1,使用分页机制转化后的地址作为guest-physical addresses。EPT的表和页表基本类似,具体可以参见Intel的编程

2010-09-12 11:16:00 2787

原创 Emulate MSR_EBC_FREQUENCY_ID patch

<br />为GuestOS模拟MSR寄存器的读取。<br />主要模拟了MSR_EBC_FREQUENCY_ID寄存器。<br /> <br />看了一下Intel的寄存器,这个主要是上报Core Clock Frequency 和 System Bus Frequency ,具体可以参考Intel编程手册。<br />  /*<br />   * MSR_EBC_FREQUENCY_ID<br />   * Conservative value valid for even the basic CPU

2010-09-11 21:28:00 668

转载 mlockall, munlockall

<br />NAMEmlockall, munlockall - lock/unlock the address space of a process (REALTIME)  SYNOPSIS#include <sys/mman.h>int mlockall(int flags);int munlockall(void); DESCRIPTIONThe function mlockall() causes all of the pages mapped by the address

2010-09-02 22:38:00 1794

原创 kvm对外部中断的处理

<br />Acknowledge interrupt on exit. The “acknowledge interrupt on exit” VM-exit<br />control in the controlling VMCS controls processor behavior for external interrupt<br />acknowledgement. If the control is 1, the processor acknowledges the interrupt<br

2010-08-31 23:58:00 1675 1

原创 VirtualBox下解决ubuntu全屏问题

1.安装VBOXADDITIONS。         在VirtualBox的设备菜单栏下,选择安装增强功能。这个时候在虚拟的Ubuntu中出现虚拟光盘。          运行光盘下的批处理文件即可。            cd /cdrom         sudo ./VBoxLinuxAdditions-x86.run 2.重启Ubuntu生效。        

2010-01-02 13:10:00 872

原创 配置fstab,实现开机自动挂载vfat和ntfs文件系统

什么是fstab文件fstab包含了你的电脑上的存储设备及其文件系统的信息。使用fstab可以实现开机自动挂载各种文件系统格式的硬盘、分区、可移动设备和远程设备等。 fstab文件示例我机子上的配置:执行sudo fdisk -l显示目前硬盘分区:   Device Boot      Start         End      Blocks  

2009-10-24 19:49:00 10628

转载 intel e1000 网卡 napi分析

内核如何从网卡接收数据,传统的过程:1.数据到达网卡;2.网卡产生一个中断给内核;3.内核使用I/O指令,从网卡I/O区域中去读取数据; 我们在许多网卡驱动中(很老那些),都可以在网卡的中断函数中见到这一过程。 但是,这一种方法,有一种重要的问题,就是大流量的数据来到,网卡会产生大量的中断,内核在中断上下文中,会浪费大量的资源来处理中断本身。所以,就有一个问题,“可不可以不使用中断

2009-09-20 22:41:00 2935

原创 e1000相关资料

http://download.intel.com/network/connectivity/products/prodbrf/252454.pdf

2009-09-20 22:23:00 803

原创 e1000驱动学习总结

e1000.h : 驱动头文件 e1000_ethtool.c  : ethtool接口e1000_hw.c  e1000_hw.h : 和硬件(PCI)相关头文件和实现e1000_main.c : 主函数e1000_osdep.h : 寄存器操作e1000_param.c : proc接口参数 module_init(e1000_init_module);modu

2009-09-20 21:35:00 1696

原创 linux SMP 启动过程学习笔记

1.       SMP硬件体系结构:对于SMP最简单可以理解为系统存在多个完全相同的CPU,所有CPU共享总线,拥有自己的寄存器。对于内存和外部设备访问,由于共享总线,所以是共享的。Linux操作系统多个CPU共享在系统空间上映射相同,是完全对等的。 由于系统中存在多个

2009-09-01 23:24:00 9330

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除