当前位置: 首页 > news >正文

网站服务器不稳定做网站推广怎么跟客户沟通

网站服务器不稳定,做网站推广怎么跟客户沟通,网站推广怎么做与发布,如何自己建设网站ARM 的时钟周期计数保存在PMCCNTR 寄存器#xff0c;不像x86用户态可以直接读取#xff0c;需内核态使能#xff0c;一种是在内核中使能#xff0c;比如init#xff0c;比较简单的是在模块中使能。 本来写了两个#xff0c;arm32一个#xff0c;arm64一个#xff0c;方…ARM 的时钟周期计数保存在PMCCNTR 寄存器不像x86用户态可以直接读取需内核态使能一种是在内核中使能比如init比较简单的是在模块中使能。 本来写了两个arm32一个arm64一个方便对比合在了一起。 只测试了32位cortex-a9双核, 还有 个64位a76 a55。 enpmu.c #include linux/module.h #include linux/kernel.h #include linux/smp.hMODULE_AUTHOR(cn); MODULE_LICENSE(GPL); MODULE_VERSION(0.0);#if !defined(__arm__) !defined(__aarch64__) #error module only support arm32 arm64. #endif#ifdef __aarch64__ typedef unsigned long ulint; //64 #elif defined __arm__ typedef unsigned int ulint; //32 #endifstatic void en_access(void*) {ulint i0,tmpvar0;#ifdef __aarch64__asm volatile(mrs %0, mpidr_el1 :r(i));i (i 8) 0xff; #elseasm volatile(mrc p15,0,%0,c0,c0,5 :r(i));i i 3; #endif asm volatile ( #ifdef __aarch64__mrs %0,pmuserenr_el0 \norr %0, %0,%1 \nmsr pmuserenr_el0,%0 #elsemrc p15, 0, %0, c9, c14, 0 \norr %0, %0,%1 \nmcr p15, 0, %0, c9, c14, 0 \n #endif:r(tmpvar):r(0xf));asm volatile( #ifdef __aarch64__mrs %0, pmcr_el0 \norr %0, %0, %1 \n //32 0x41bic %0, %0, %2 \nmsr pmcr_el0,%0 \n #elsemrc p15, 0, %0, c9, c12, 0 \norr %0, %0,%1 \nbic %0, %0, %2 \nmcr p15, 0, %0, c9, c12, 0 \n #endif:r(tmpvar):r(0x81),r(0x28));asm volatile( #ifdef __aarch64__msr pmcntenset_el0,%1 \nmrs %0, cntvct_el0 \n #elsemcr p15, 0, %1, c9, c12, 1 \nmrc p15, 0, %0, c9, c13, 0 \n #endif:r(tmpvar) :r(0xffffffff));printk(core %lu tsc %lx,(unsigned long)i, (unsigned long)tmpvar ); }static void restore_access(void*) {ulint i,tmpvar0; #ifdef __aarch64__asm volatile( mrs %0, mpidr_el1: r(i));i (i 8)0xff; #elseasm volatile(mrc p15,0,%0,c0,c0,5 \n : r(i));i i 3; #endifasm volatile ( #ifdef __aarch64__mrs %0,pmcr_el0 \nbic %0,%0, %2 \nmsr pmcr_el0,%0\nmsr pmuserenr_el0,%1\nmrs %0, cntvct_el0 \n #elsemrc p15, 0, %0, c9, c14, 0 \nbic %0,%0, %2 \nmcr p15, 0, %0, c9, c14, 0 \nmcr p15, 0, %1, c9, c12, 1 \nmrc p15, 0, %0, c9, c13, 0 \n #endif:r (tmpvar):r(0),r(1));printk(un core %lx tsc %lx,(unsigned long)i, (unsigned long)tmpvar );} static int __init start(void) { on_each_cpu(en_access, NULL, 1);printk(KERN_INFO pmu access enabled\n); return 0; } static void __exit stop(void) { on_each_cpu(restore_access, NULL, 1);printk(KERN_INFO pmu access disabled\n); } module_init(start); module_exit(stop); Makefile obj-m enpmu.o all:make -C /lib/modules/$(shell uname -r)/build/ M$(PWD) modules clean:make -C /lib/modules/$(shell uname -r)/build M$(PWD) clean直接 makeinsmod enpmu.ko rmmod enpmu然后就可以读取了 以下arm32 arm64 x86_64读取方法 test.c #include stdio.h #ifndef __arm__ typedef unsigned long ulint; #else typedef unsigned int ulint; #endif int main() {ulint ct 0; #ifdef __aarch64__asm volatile(mrs %0, cntvct_el0 :r(ct)); #elif defined __arm__asm volatile(mrc p15,0,%0, c9, c13, 0:r(ct)); #elif defined __x86_64__asm volatile(rdtsc ; shl $32, %%rdx ; or %%rdx, %0: a(ct)); #endifprintf(%lx\n,(unsigned long)ct); }gcc test.c ./a.out taskset -c 1 ./a.outtaskset -c 选择在哪个核上运行。 附录 CNTVCT_EL0pmcntenset_el0 Performance Monitors Count Enable Set registerpurpose Enables the Cycle Count Register· C [31]· 0x1 » PMCCNTR_EL0 enable· Pm» PMEVCNTRn_EL0 enable 0xFFFFFFFFpmuserenr_el0 Performance Monitors User Enable Register Enable or disables EL0 access to the performance Monitors; ER [3] » Event counters Read enable, » 1 en rw CR [2] » Cycle counter Read enable· » 32 MRC read PMCCNTR MRRC read PMCCNTR SW[1] software increment register Write enable » 1 En [0] Enable » Enables EL0 read/write access to PMU registers 0xFPMCR_EL0 bit[9] Freeze-on-overflow 0 LC [6] 1 aarch32 supported long cycle » 0x1 DP [5] Disable cycle counter when event counting is prohibited·0x0 not affectedD [3] clock divider··0 pmccntr_el0 counts every clock cycle E [0] enable1 Affected counters are enabled by pmcntenset_el0mrc/mcr Op1 CRm Op2 Name Type Reset Description 0 c12 0 PMCR RW 0x41093000 Performance Monitor Control Register1 PMCNTENSET RW 0x00000000 Count Enable Set Register2 PMCNTENCLR RW 0x00000000 Count Enable Clear Register3 PMOVSR RW - Overflow Flag Status Register4 PMSWINC WO - Software Increment Register5 PMSELR RW 0x00000000 Event Counter Selection Registerc13 0 PMCCNTR RW - Cycle Count Register1 PMXEVTYPER RW - Event Type Selection Register2 PMXEVCNTR RW - Event Count Registersc14 0 PMUSERENR RWa 0x00000000 User Enable Register1 PMINTENSET RW 0x00000000 Interrupt Enable Set Register2 PMINTENCLR RW 0x00000000 Interrupt Enable Clear Register
http://www.tj-hxxt.cn/news/219159.html

相关文章:

  • 设计一个官方网站推广广告泰安可以做网站的公司
  • 广州网站建设及推广在线网页制作
  • 进了网站的后台系统 怎么改公司的网站wordpress百度推送插件
  • 分类信息系统网站模板梅州网页设计培训报价
  • 网站icon怎么设置app制作
  • 手机版企业网站静态页面网站站标代码写进到静态页面了 怎么不显示呢?
  • 做网站不会配色怎么办湘潭做网站问下磐石网络
  • 网站建设优化推广教程门户网站开发工具软件
  • 青岛市崂山区建设局网站网站前端跟后端怎么做
  • 中英文企业网站公司简介模板免费文字
  • 怎么做专门卖二手衣服的网站seo推广公司 什么意思
  • 汉字域名的网站闵行网页设计
  • 网站如何防止别人抄袭wordpress index.txt
  • flash网站开源企业创建网站的途径都有啥
  • 医院网站建设 利法拉网络素材网站在哪里找
  • 江西响应式网站建设哪家好最新项目首码发布平台
  • 南昌网站建设的流程西安找公司建网站
  • 专业网站建设行业现状辽宁建设工程信息网新版网址
  • 中国建设银行理财网站上海 网站设计 公司
  • 网站建设应注意哪些事项网站是否能够被恶意镜像
  • 邯郸移动网站建设报价专业网站制作哪家专业
  • 做网站到底能不能赚钱建设银行北海分行网站
  • 网站开发得花多少钱外贸公司查询
  • 四川汉舟电力建设有限公司网站宁波黄页网
  • 校园网站建设的作用百度网盘搜索免费资源
  • 建工教育网校官方网站网站策划公司
  • 做旅游网约车的网站网站二次开发是什么意思
  • 套别人代码做网站优化游戏的软件
  • 网站便民服务平台怎么做招聘 人才招聘
  • 小型网站制作深圳网络推广经验分享