自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(99)
  • 资源 (3)
  • 收藏
  • 关注

原创 内存管理API之mempool_alloc

void *mempool_alloc(mempool_t *pool, gfp_t gfp_mask)从形参pool中申请内存其源码分析如下:void *mempool_alloc(mempool_t *pool, gfp_t gfp_mask){ void *element; unsigned long flags; wait_queue_entry_t wait; gfp_t

2018-01-29 08:26:09 1271

原创 内存管理API之memdup_user

void *memdup_user(const void __user *src, size_t len)的作用是从copy user space的从src开始长度为len的一段内存到kernel space其源码分析如下:void *memdup_user(const void __user *src, size_t len){ void *p; /* * Always use

2018-01-29 08:25:07 2080

原创 内存管理API之kunmap_high

void kunmap_high(struct page *page)一般和kmap_high一起搭配使用,用于unmap highmem page into memory其源码分析如下:/** * kunmap_high - unmap a highmem page into memory * @page: &struct page to unmap * * If ARCH_NEED

2018-01-27 08:25:35 725

原创 内存管理API之kstrndup

char *kstrndup(const char *s, size_t max, gfp_t gfp) 这个函数的作用和kstrlen的作用相同,但是它限制了字符串的长度不能超过形参max其源码分析如下:/** * kstrndup - allocate space for and copy an existing string * @s: the string to duplicat

2018-01-27 08:24:19 646

原创 内存管理API之kstrdup

char *kstrdup(const char *s, gfp_t gfp)用于申请一段内存将形参s的内容copy到这段新申请的内存中.其源码分析如下:/** * kstrdup - allocate space for and copy an existing string * @s: the string to duplicate * @gfp: the GFP mask used

2018-01-26 08:25:42 4305

原创 内存管理API之kmemdup

void *kmemdup(const void *src, size_t len, gfp_t gfp)用于新申请一段内存,并将形参src中的内容复制到新申请的这段内存中其源码分析如下:/** * kmemdup - duplicate region of memory * * @src: memory region to duplicate * @len: memory regio

2018-01-26 08:23:06 1901

原创 内存管理API之kmem_cache_zalloc

static inline void *kmem_cache_zalloc(struct kmem_cache *k, gfp_t flags)的作用和kmem_cache_alloc类似,都是从缓存中申请内存,但是这个函数会把申请到的缓存清零.其源码分析如下:static inline void *kmem_cache_zalloc(struct kmem_cache *k, gfp_t

2018-01-25 08:27:56 3630

原创 内存管理API之kmem_cache_destroy

void kmem_cache_destroy(struct kmem_cache *s)用于销毁通过kmem_cache_create创建的缓存其源码分析如下:void kmem_cache_destroy(struct kmem_cache *s){ int err; #形参s 为null,则直接退出,说明kmem_cache_destroy 的形参可以为null if (unl

2018-01-25 08:26:21 1427

原创 内存管理API之kmem_cache_free

void kmem_cache_free(struct kmem_cache *cachep, void *objp)用于释放kmem_cache_alloc 申请的内存。其源码分析如下:void kmem_cache_free(struct kmem_cache *cachep, void *objp){ unsigned long flags; #这个函数主要是检查这个slab 是否

2018-01-24 08:16:58 2470

原创 内存管理API之kmem_cache_alloc

void *kmem_cache_alloc(struct kmem_cache *cachep, gfp_t flags)用于从缓存中申请内存。其使用的例程如下: table->table = kmem_cache_alloc(amd_iommu_irq_cache, GFP_ATOMIC); if (!table->table) { kfree(table); table = N

2018-01-24 08:15:54 6667

原创 /test-definitions/blob/master/auto-test/linpack/linpack.sh

#!/bin/sh -eset -xcd ../../utils . ./sh-test-lib . ./sys_info.shcd -ARRAY_SIZE="200"# Run Test.#detect_abiwget http://www.netlib.org/benchmark/linpackc.newprint_info $? wget-linpackc#将

2018-01-23 08:23:01 458

原创 test-definitions/tree/master/auto-test/libhugetlbfs

#!/bin/sh# shellcheck disable=SC1091. ../../lib/sh-test-lib#给变量赋初值OUTPUT="$(pwd)/output"RESULT_FILE="${OUTPUT}/result.txt"RESULT_LOG="${OUTPUT}/result_log.txt"TMP_LOG="${OUTPUT}/tmp_log.txt"T

2018-01-23 08:22:55 624

原创 test-definitions/blob/master/auto-test/kernel-compilation/kernel-compilation.sh

#!/bin/sh -e# shellcheck disable=SC1091. ../../lib/sh-test-libOUTPUT="$(pwd)/output"RESULT_FILE="${OUTPUT}/result.txt"export RESULT_FILELOGFILE="${OUTPUT}/kernel-compilation.txt"VERSION='4.4.3

2018-01-23 08:22:48 377

原创 内存管理API之kmem_cache_create

struct kmem_cache *kmem_cache_create(const char *name, size_t size, size_t align, slab_flags_t flags, void (*ctor)(void *))用于创建一个新的slab 缓存,一般在驱动初始化的时候用。其使用的例程如下: amd_iommu_irq_cache = kmem_ca

2018-01-23 08:22:31 1606

原创 内存管理API之page_address

void *page_address(const struct page *page) 这个函数用于得到页的虚拟地址,这里的页可以是高端页或者低端页其源码分析如下:void *page_address(const struct page *page){ unsigned long flags; void *ret; struct page_address_slot *pas; #可以

2018-01-23 08:21:16 3315

原创 test-definitions/blob/master/auto-test/isolate-task/isolate-task-verify.sh

#!/bin/sh -e #-e表示遇到错误就退出#定义函数说明这个脚本的用法usage() { echo "Usage: $0 " 1>&2 echo " -c CPU's to isolate and verify" echo " -s Skip dependenciy installs" echo " -t Git tag to use" ech

2018-01-22 08:38:28 399

原创 test-definitions/blob/master/auto-test/iperf/iperf.sh

#!/bin/sh -eset -xcd ../../utils . ./sys_info.shcd -SERVER="127.0.0.1"TIME="10"THREADS="1"VERSION="3.1.4"if [ `whoami` != 'root' ] ; then echo "You must be the superuser to run this s

2018-01-22 08:37:59 519

原创 test-definitions/blob/master/auto-test/iostat/iostat.sh

#!/bin/sh#命令和参数回显set -xcd ../../utils . ./sys_info.shcd -#检查是否是root用户# Test user idif [ `whoami` != 'root' ] ; then echo "You must be the superuser to run this script" >&2 exit 1f

2018-01-22 08:37:39 377

原创 test-definitions/blob/master/auto-test/httperf-client/httperf.sh

#!/bin/sh#回显执行的命令和参数set -xcd ../../utils . ./sys_info.shcd -#检查是否是root用户if [ `whoami` != 'root' ] ; then echo "You must be the superuser to run this script" >&2 exit 1fi#distro=`ca

2018-01-22 08:37:21 392

原创 test-definitions/blob/master/auto-test/golang/golang.sh

#!/bin/bash#回显执行的命令和参数set -xcd ../../utils. ./sys_info.sh. ./sh-test-libcd -#安装go和net-tools 这两个包case "${distro}" in centos|fedora) pkgs="go net-tools" install_deps "${pkgs}" print_info

2018-01-22 08:37:08 440

原创 内存管理API之kmap_high

void *kmap_high(struct page *page)函数的作用是建立高端内存到内核地址空间的永久映射.其源码分析如下:#这里的page一般已经通过alloc_pages 申请的高端内存void *kmap_high(struct page *page){ unsigned long vaddr; /* * For highmem pages, we can't

2018-01-22 08:35:43 609

原创 内存管理API之kcalloc

static inline void *kcalloc(size_t n, size_t size, gfp_t flags) 为一个数组分配memory并将memory中的内容清零。其源码分析如下:static inline void *kcalloc(size_t n, size_t size, gfp_t flags){ #可以看到这里添加了flag __GFP_ZERO来让申请到

2018-01-22 08:34:22 4060

原创 test-definitions/blob/master/auto-test/hhvm/hhvm.sh

#!/bin/bashset -xcd ../../utils. ./sys_info.sh. ./sh-test-libcd -#得到$1的绝对地址INSTALLDIR=$(cd $1; pwd)HOST=$distroPKG_NAME="hhvm"PKG_VER="3.17.3"#发行版是centos的话,需要一次性安装这么多包case $HOST in

2018-01-19 08:58:23 416

原创 test-definitions/blob/master/auto-test/gprof/gprof.sh

#!/bin/shset -xcd ../../utils . ./sys_info.shcd -# 检查是否root 用户if [ `whoami` != 'root' ] ; then echo "You must be the superuser to run this script" >&2 exit 1fi安装gcc包case $distro

2018-01-19 08:58:15 348

原创 test-definitions/blob/master/auto-test/go-bindata/go-bindata.sh

#!/bin/bash#回显执行的命令和参数set -xcd ../../utils. ./sys_info.sh. ./sh-test-libcd -#检查是否安装go,没有安装的话,就安装gogo versionif [ $? -ne 0 ];then print_info 1 golang-installelse yum install go print_info

2018-01-19 08:58:08 449

原创 test-definitions/blob/master/auto-test/ftp/ftp.sh

#! /bin/bashvsftpd_op(){ local cmd="" local operation=$1 local log_file="vsftpd.log"#根据不同发行版起不同的service。以ubuntu为例,这里可能是service vsftpd start case $distro in "ubuntu" | "debi

2018-01-19 08:57:47 376

原创 test-definitions/blob/master/auto-test/etcd/etcd.sh

#!/bin/bash#回显执行的命令和参数set -x#cd到目录执行脚本,然后通过cd - 返回到当前目录cd ../../utils. ./sys_info.sh. ./sh-test-libcd -#根据不同的发行版安装repocase "${distro}" in centos|fedora) sudo wget -O /etc/yum.repos.d/est

2018-01-19 08:57:37 397

原创 test-definitions/blob/master/auto-test/dstat/dstat.sh

#!/bin/sh#回显执行的命令和参数set -x#cd到目录执行脚本,然后通过cd -返回到当前目录cd ../../utils . ./sys_info.shcd -#检查是否是root用户# Test user idif [ `whoami` != 'root' ] ; then echo "You must be the superuser to run

2018-01-19 08:57:30 389

原创 test-definitions/blob/master/auto-test/dsdbench/dsdbench.sh

#!/bin/sh -e# This test script run docker storage driver benchmarks and tests.# Test suite source https://github.com/dmcgowan/dsdbench# shellcheck disable=SC1091#cd到相对路径下执行脚本. ../../lib/sh-test

2018-01-19 08:57:21 362

原创 test-definitions/blob/master/auto-test/dsdbench/dsdbench.sh

#!/bin/sh -e# This test script run docker storage driver benchmarks and tests.# Test suite source https://github.com/dmcgowan/dsdbench# shellcheck disable=SC1091#cd到相对路径下执行脚本. ../../lib/sh-test

2018-01-19 08:57:11 406

原创 内存管理API之get_zeroed_page

unsigned long get_zeroed_page(gfp_t gfp_mask) 用于申请一个页,其内容会被清零.其源码分析如下:unsigned long get_zeroed_page(gfp_t gfp_mask){ #可以看到这里添加了一个flags,__GFP_ZERO。这个flag 会对申请到的页清零 return __get_free_pages(gfp_mask

2018-01-19 08:25:57 1871

原创 内存管理API之get_vm_area_size

static inline size_t get_vm_area_size(const struct vm_struct *area)用于得到形参area的size。其源码分析如下:static inline size_t get_vm_area_size(const struct vm_struct *area){ if (!(area->flags & VM_NO_GUARD))

2018-01-19 08:24:59 430

原创 test-definitions/blob/master/auto-test/docker/docker.sh

#!/bin/bash#-x 会回显命令执行的语句和参数set -x#相对路径执行脚本,并通过cd - 返回当前目录cd ../../utils. ./sys_info.sh. ./sh-test-libcd -#要支持docker ,可以看出不同发行版安装的包有所不同case $distro in centos) pkgs="make wget docker"

2018-01-18 14:18:48 385

原创 test-definitions/blob/master/auto-test/disk-partitioning/disk-partitioning.sh

#!/bin/sh# shellcheck disable=SC1091#相对路径执行脚本,并给常量赋值. ../../utils/sh-test-libOUTPUT="$(pwd)/output"RESULT_FILE="${OUTPUT}/result.txt"export RESULT_FILEDISKLABEL="gpt"FILESYSTEM="ext4"#定义一个函数

2018-01-18 14:17:51 396

原创 test-definitions/blob/master/auto-test/dhcp/dhcp.sh

#!/bin/sh#-x 会回显命令执行的语句和参数set -x#进入到相对路径执行命令,并通过cd -f返回cd ../../utils. ./sys_info.shcd -#Test user id#检查是否是root用户if [ `whoami` != 'root' ]; then echo " You must be the superuser to run t

2018-01-18 14:16:58 393

原创 test-definitions/tree/master/auto-test/dd-wr-speed

#!/bin/sh -e #-e 表明。若指令传回值不等于0,则立即退出shell# shellcheck disable=SC1091#相对路径执行脚本. ../../utils/sh-test-libOUTPUT="$(pwd)/output"RESULT_FILE="${OUTPUT}/result.txt"export RESULT_FILEITERATION="5"u

2018-01-18 14:16:17 410

原创 test-definitions/blob/master/auto-test/cyclictest/cyclictest.sh

#!/bin/sh -e# cyclictest measures event latency in Linux kernel by measuring the amount of# time that passes between when a timer expires and when the thread which set# the timer actually runs.#

2018-01-18 14:15:15 331

原创 /test-definitions/blob/master/auto-test/crypto/crypto.sh

#!/bin/shset -x#进入到目录执行脚本,然后通过cd -返回当前目录cd ../../utils. ./sys_info.shcd -#Test user id#检查是否是root 用户if [ `whoami` != 'root' ]; then echo " You must be the superuser to run this script" >

2018-01-18 14:14:08 375

原创 test-definitions/blob/master/auto-test/cockroach/cockroachInsecureTest.sh

#! /bin/bash set -x#获得脚本文件所在的路径basedir=$(cd `dirname $0` ;pwd)cd $basedir #用相对路径执行脚本文件. ../../lib/sh-test-lib #安装包以及依赖的包install_deps cockroach#查看这个包是否安装成功if [ `which cockroach` ] ;then

2018-01-18 14:12:11 394

原创 git log 中根据author 过滤

2018-01-18 14:08:07 7037

空空如也

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

TA关注的人

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