当前位置: 技术问答>linux和unix
询问某段内核代码的意思?
来源: 互联网 发布时间:2015-11-19
本文导语: 在start_kernel里有这样一段程序: 571 if (prof_shift) { 572 unsigned int size; 573 /* only text is profiled */ 574 prof_len = (unsigned long) &_etext - (unsigned long) &_stext; 575 prof_len >>= prof_shift; 576 577 size = prof_len * sizeof(unsigne...
在start_kernel里有这样一段程序:
571 if (prof_shift) {
572 unsigned int size;
573 /* only text is profiled */
574 prof_len = (unsigned long) &_etext - (unsigned long) &_stext;
575 prof_len >>= prof_shift;
576
577 size = prof_len * sizeof(unsigned int) + PAGE_SIZE-1;
578 prof_buffer = (unsigned int *) alloc_bootmem(size);
579 }
请问大家这段代码是什么意思啊?
571 if (prof_shift) {
572 unsigned int size;
573 /* only text is profiled */
574 prof_len = (unsigned long) &_etext - (unsigned long) &_stext;
575 prof_len >>= prof_shift;
576
577 size = prof_len * sizeof(unsigned int) + PAGE_SIZE-1;
578 prof_buffer = (unsigned int *) alloc_bootmem(size);
579 }
请问大家这段代码是什么意思啊?
|
profile一般用来采样内核的执行过程,提供某个函数执行所占用的时间占整个采样时间的百分比,这样开发这就可以知道那些函数被执行的最多,然后可以对这些函数进行优化。上面的一段代码只是分配一片启动内存,这片内存最后就会存放相关的采样信息,_etext-_stext表示只采样内核的数据段