vmm_notify

vmm_notify类实现进行通知服务的接口。该通知服务可为并发线程或者事物提供同步机制。

1. 通知可以和某一个由vmm_data派生出的status descriptor实例相关联,以便以后重新得到这个关联的status descriptor。如下:

this.notify.indicate(int notification_id, vmm_data status);
....
$cast(status, this.notify.status(notification_id);

 

2. 配置notifycation

virtual function int configure(int notification_id=-1,sync_e sync=ONE_SHOT);

如果指示标号为负数(缺省为负数),则返回新的大于1000000的一个唯一标识号,否则标识号就是你指定的notification_id,而配置的类型有ONE_SHOT(脉冲), ON_OFF(电平),BLAST(更加强调broadcasting)

3. 哪些vmm基类中有vmm_notify 公共成员

同vmm_log,基本上所有的vmm基类中都有vmm_notify 公共成员。 包括vmm_data, vmm_xactor, vmm_channel, vmm_env. 因为同步事件是每个基类必须的。基类的构造函数new会根据自己的vmm_log接口创建自己的vmm_notify句柄。如下,

this.notify=new(vmm_log log);  //创建该类的新实例,使用指定的消息服务接口发出错误和调试信息

 

4. vmm各个基类中有哪些预定义的事件ID

vmm_data有ON_OFF类型的:

      EXECUTE      //一旦生成一个新的transaction就发出这个事件
      STARTED      // 未使用,(也许我们可以在transactor开始执行这个transaction时发出这个事件)
      ENDED          // 未使用

例如:用于等待各个transaction都完成了,  tr.notify.wait_for(vmm_data::ENDED);
一般ENDED在VIP里面是这样使用的,以后我们也应该这样使用:
recevier在get出某个transaction后,进一步对transaction作一些处理,然后transaction发出ENDED通知。


vmm_xactor中预定义了已经被基类使用的事件

       XACTOR_IDLE       // ON_OFF     transactor创建以后的default的起始状态
       XACTOR_BUSY      // ON_OFF
      XACTOR_STARTED  // ONE_SHOT      transactor进入启动状态
       XACTOR_STOPPED  // ONE_SHOT      transactor处在stop状态
       XACTOR_RESET       // ONE_SHOT      transactor 被reset了

例如:
在driver或reciever的send或rcv函数中加入
this.notify.indicate(vmm_xactor::XACTOR_IDLE);
...//处理一个transaction
this.notify.reset(vmm_xactor::XACTOR_IDLE);
在tb_env中的stop()中加入
drv.wait_for(vmm_xactor::XACTOR_IDLE);

 vmm_atomic_gen中预定义了已经被使用的事件

       GENERATED  //   ONE_SHOT   表明已经根据blueprint产生了transaction descriptor的一个产品
       DONE       //     ON_OFF       已经把所有的产品放入到channel中。


 

 

其他的不太常用,就不介绍了。

<6>[ 598.228528][ T5534] FUELSUMMARY: fuelsummary_resume: resume fex_count=1 <6>[ 598.228550][ T5534] VIVO_VIR_TEMP: tshell_resume: enter <3>[ 598.228558][ T5534] vfcs-cms: vfcs_cms_resume: schedule battery_monitor_work <6>[ 598.228569][ T5534] METER: meter_resume: vendor(1),curve_size[101],qmax[3450,3666,3716,3860,3888],car_tune[1000,1000,1000,1000] <6>[ 598.228574][ T5534] METER: meter_resume: dod0=0,ocv=[4385,4385],voltage[4324,4317]:[4323,4402],current=12384,coulomb=-30,temperature=313,capacity[100,100,94,100,0,100],qmax=3867,bat_plug=0 <6>[ 598.228581][ T5534] VPSY: vpsy_resume: sleep_duration=10013,MSEC_PER_SEC=1000,timeout_sec=300,run_time_interval=22,fg_is_exception=0 <6>[ 598.228588][T14151] FUELSUMMARY: fex_running: scene:6 <6>[ 598.228602][ T5534] [MCUPM_TS] update base: ts=598228595578, tick=0x1db2f3614, fz=0, ver=7 <7>[ 598.228616][ T5534] [debug][sipa_driver] sipa_pm_resume: running <7>[ 598.228619][ T5534] [debug][sipa_driver] sipa_pm_resume: running <6>[ 598.228693][ T5534] mtk_mdla mdla: mdla_resume() <3>[ 598.228714][ T5534] vfcs: vfcs_resume: <6>[ 598.228807][ T5534] [GPU/EB] @timesync_sync_base_internal: [GPUEB_TS] update base: ts=598228804270, tick=0x1db2f40ac, fz=0, ver=7 <6>[ 598.228972][ T5534] apu_top_resume + <6>[ 598.229038][ T5534] [SSPM_TS] update base: ts=598229036193, tick=0x1db2f4c70, fz=0, ver=7 <6>[ 598.229131][ T5534] [HW_KEY] code: 115 - state: 0 <7>[ 598.229162][ T5534] BATTERY: battery_resume: <5>[ 598.229324][ T5534] [MDP]cmdq_resume ignore <3>[ 598.229472][T14151] mtu3 11201000.usb0: vusb dbg: mtu3_resume_common event 2 <6>[ 598.229647][ T74] [Awinic] [2-0059]aw87xxx_i2c_resume: enter <6>[ 598.229734][ T5534] [dlpt] imix_r=42 <5>[ 598.229765][ T5534] ******** mtk_battery_resume!! iavg=1 ***GM3 disable:0 0 0 0*** <5>[ 598.229798][ T5534] enable_gauge_irq irq_no:8:406 depth:1 <6>[ 598.229799][T14151] [Awinic] [2-0058]aw87xxx_i2c_resume: enter <5>[ 598.229925][ T5534] [fg_update_sw_iavg]diff time:4 <5>[ 598.230150][ T5534] enable_gauge_irq irq_no:11:409 depth:1 <5>[ 598.230614][ T5534] MT6375_GAUGE: en_bat_tmp_lt_set: [en_bat_tmp_lt_set]en:1 <5>[ 598.230966][ T5534] enable_gauge_irq irq_no:10:408 depth:1 <5>[ 598.231891][ T5534] MT6375_GAUGE: en_bat_tmp_ht_set: [en_bat_tmp_ht_set]en:1 <6>[ 598.232699][ T5534] @kbase_device_resume: Resuming GPU, active_count=0 gpu_powered=0 mfgsys_powered=0 <6>[ 598.232706][ T5534] [KBASE/PLATFORM][INFO]@pm_callback_resume: pm_callback_resume <6>[ 598.233416][ T5534] mali 13000000.mali: Scheduler PM resume <6>[ 598.233810][ T324] [wlan][324]mtk_cfg80211_resume:(REQ TRACE) mtk_cfg80211_resume <6>[ 598.233912][ T324] [wlan][324]kalIoctlByBssIdx:(OID TRACE) waiting, pfnOidHandler=wlanoidIndicateBssInfo [wlan_drv_gen4m_6878], BufLen=0, QryLen=000000008ae6b7d1 <6>[ 598.233962][ T2369] [wlan][2369]main_thread:(NIC TRACE) pfnOidHandler=wlanoidIndicateBssInfo [wlan_drv_gen4m_6878] <6>[ 598.236856][ T2369] [wlan][2369]wlanSetInformation:(NIC TRACE) u4PsCurrentMeasureEn=0, aisGetConnectedBssInfo=0000000000000000 <6>[ 598.236886][ T2369] [wlan][2369]wlanoidIndicateBssInfo:(SCN TRACE) pending 0 sched scan results <6>[ 598.236910][ T2369] [wlan][2369]wlanSetInformation:(NIC TRACE) wlanoidIndicateBssInfo [wlan_drv_gen4m_6878] returns 0 <6>[ 598.239790][ T2369] [wlan][2369]main_thread:(NIC TRACE) rPendComp=00000000fd643d6a pfnOidHandler=wlanoidIndicateBssInfo [wlan_drv_gen4m_6878] <6>[ 598.242674][ T2369] [wlan][2369]kalPerMonUpdate:(SW4 INFO) <4192ms> Tput: 0(0.000mbps) [0:0:0:0][0:0:0:0][0:0:0:0][0:0:0:0] Pending:0/4096 [0:0:0:0][0:0:0:0][0:0:0:0][0:0:0:0] LQ[0:0:0] idle:1 lv:0 th:3 fg:0x7 TxCpu[0,0,0,0,0,0,0,0] RxCpu[0,0,0,0,0,0,0,0] TxDp[ST:BS:FO:QM:DP]:0:0:0:0:0 Tx[SQ:TI:TM:TDD:TDM:TIC:TFP]:0:0:0:0:0:0:0 MgmtSub[0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0] <6>[ 598.242745][ T2369] [wlan][2369]kalPerMonUpdate:(SW4 INFO) ndevdrp:[0:0:0:0] NAPI[1316,0,0,0,0,0,0,0,0,0,0] RxReorder[0:0:0:0] RxPending[0:0:0:0] RfbTrack[0:60:10:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0] drv[RM,IL,RI,PA,PF,DU,DA,RT,RM,RW,RA,RB,DT,NS,IB,HS,LS,DD,ME,BD,NI,DR,TE,PE,CE,DN,FE,DE,IE,TME,CM,FB,ID,FD,NL]:1482,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 <6>[ 598.242654][ T324] [wlan][324]kalIoctlByBssIdx:(OID TRACE) wait=7499, pfnOidHandler=wlanoidIndicateBssInfo [wlan_drv_gen4m_6878], BufLen=0, QryLen=000000008ae6b7d1 <6>[ 598.245435][ T324] [wlan][324]halSetSuspendFlagToFw:(HAL TRACE) fgSuspend: 0, type: 0, addr: 0x0 0x0, mask: 0x0, shift: 0 <6>[ 598.245540][ T159] [connlog] wifi_fw irq counter = 129 <6>[ 598.245774][ T5534] [MBK_INFO] mbraink_resume <3>[ 598.245787][ T5534] VIVO_TS_INF[vivo_ts]vts_dev_resume:1522:resumed <5>[ 598.246612][ T5534] mminfra complete <6>[ 598.247285][ T5534] OOM killer enabled. <6>[ 598.247290][ T5534] Restarting tasks ... <6>[ 598.248836][ T1063] +VowDrv_read()+ <4>[ 598.266948][ T5534] done. <6>[ 598.266967][ T5534] pie_cpu: addPieEvent event(POWER_ID_SUSPEND), argSize(30), event_pos(48) <6>[ 598.266987][ T5534] pem_driver: addPemEvent which(w), argSize(21), event_pos(147) <5>[ 598.266994][ T5534] [MDP]cmdq_core_resume_notifier ref:0 <5>[ 598.266999][ T5534] [cmdq] mdp buffer pool already created <5>[ 598.267598][ T134] [ISPDVFS] regulator_event_notify(): VMM regulator before disable, ver = 4 <5>[ 598.267598][ T134] <5>[ 598.267788][ T134] mtk_mminfra_pd_callback: disable gce apsrc: 0x1e980048=0x0 <5>[ 598.267805][ T134] mminfra clk(3) null <5>[ 598.267819][ T134] mminfra_cg_check Scg still on, CG_CON0:0xfffffff8 CG_CON0:0xfffffff8 CG_CON1:0xfffdffff <5>[ 598.267830][ T134] [cmdq] cmdq_dump_usage: hwid:0 suspend:0 usage:0 fast_usage:0 <5>[ 598.267835][ T134] [cmdq] cmdq_dump_usage: hwid:1 suspend:0 usage:0 fast_usage:0 <5>[ 598.267838][ T134] mtk_mminfra_pd_callback: disable clk ref_cnt=0 <6>[ 598.268729][ T5534] MT6375_GAUGE: battery_temperature_adc_get: [battery_temperature_adc_get]read good,ret=0,val=1070 <6>[ 598.268747][ T5534] MT6375_GAUGE: instant_current: instant_current: cic_idx:0 <4>[ 598.269870][ T234] ^RSC rsc_cpucap_adjust_handler: percent: 1000( 628) mode: 0 clust1 tl: 21 (1500000 -> 2500000) 400000 1500000 - ( 0 -> 0) cpu: 4 t: 598269870 comm: kworker/5:2 pid: 234 offline: thpause: <5>[ 598.270206][ T5534] MT6375_GAUGE: reg_to_current: [reg_to_current] 0xfda5 0xfda5 0xfda5 0xe5a 0xe5a 0 <6>[ 598.270215][ T5534] MT6375_GAUGE: instant_current: instant_current: dvalue:-3674 -3674 reg_value:64933 <7>[ 598.270219][ T5534] BATTERY_LIB: battery_lib_get_tbat: PD2406&&PD2438: vol_cali = 1, ntc_volt_origin = 1070 <6>[ 598.270222][ T5534] BATTERY_LIB: battery_lib_get_tbat: tbat=302,res=[78239,78239],ntc_volt=[1069,1070],vol_cali=1,fg_r_value=2,fg_meter_res_value=0, <5>[ 598.270243][ T5534] battery_psy_get_property psp:52 ret:0 val:300 <6>[ 598.293095][ T819] Consys HW version id(0x02050401), retry(9) <6>[ 598.293796][ T819] conninfra@(consys_thermal_query_adie6631_mt6878:591) [consys_thermal_query_adie6631_mt6878] efuse:[0xa80000ac][0xa880a800][0x00000000][0x00000000][0x00000000][0x00000000][0x00000000][0x00000000] thermal dump: [0x10002b2b][0x2e0326ff][0x2c110001][0x00000000][0xffffffff][0x64040000][0x50b05a10][0x00002b2b][0x00002b2b][0x00082b2b][0x00002b2b] <6>[ 598.293829][ T819] conninfra@(calculate_adie6631_thermal_temperature:423) y=[43] b=[44] constOffset=[25] [0] [0] => t=[30] <6>[ 598.294141][ T5534] Resume caused by IRQ 257, rcs_irq <6>[ 598.294171][ T5534] log_store: write pmic value 0x49, ret 0x0. <6>[ 598.294235][ T5534] [DPE]dpe_suspend_pm_event:resume g_u4EnableClockCount(0) g_SuspendCnt(0). <5>[ 598.296031][ T5534] [scp_dvfs]: [SCP] [mt_scp_dump_sleep_count:2339] - scp_sleep_cnt_0 = 40286 <5>[ 598.296990][ T5534] [scp_dvfs]: [SCP] [mt_scp_stop_res_prof:2267] [0] susepnd time: 915ms <5>[ 598.297007][ T5534] [scp_dvfs]: [SCP] [mt_scp_stop_res_prof:2274] [0] [wakelock] total: 1ms, lock AP_W: 1ms <5>[ 598.297020][ T5534] [VCP] PM_POST_SUSPEND entered 0 1 <6>[ 598.297104][ T5534] [wlan][5534]wlan_pm_notifier_call:(REQ INFO) pm_event: 4 PM_POST_SUSPEND <6>[ 598.297120][ T5534] [wlan][5534]glResetUpdateFlag:(INIT TRACE) reset: 0 <6>[ 598.297128][ T5534] [MTK-WIFI] update_driver_reset_status[I]: update_driver_reset_status: 0 <6>[ 598.297135][ T5534] [wlan][5534]glResetOnEndUpdateFlag:(INIT TRACE) reset_on_end: 0 <6>[ 598.297281][ T159] conn_pwr_core_resume low_battery=0, thermal=0, customer=0x00000000 <6>[ 598.297313][ T159] conn_pwr_core_resume bt=0, FM=0, GPS=0, Wi-Fi=0 <6>[ 598.298137][ T819] conninfra@(consys_power_state_dump:343) [consys_power_state][round:5]conninfra:0.881,2;wf:0.915,0;bt:0.881,1;gps:0.915,0;[total]conninfra:13.864,14;wf:14.224,0;bt:13.851,11;gps:14.226,0; <6>[ 598.298152][ T819] conninfra@(consys_power_state:187) [consys_power_state] [0x80000] <6>[ 598.300519][ T5534] [name:spm&][SPM] suspend end 2025-07-01 02:41:23.464266 UTC;android time 2025-07-01 02:41:23.464266 <5>[ 598.300798][ T5534] swpm_sp_routine regular update(1), total_suspend(9542542) <6>[ 598.300834][ T5534] [name:spm&][SPM] [name:spm&][SPM] suspend 775 ms; group 0 ratio 100 (> 30) []; group 1 ratio 18; group 2 ratio 18; group 3 ratio 22; <6>[ 598.301678][ T5534] timesync host resume boottime 607841589188 <6>[ 598.301703][ T5534] timesync boot 607841612649 sched 598301702347 android 07-01 02:41:23.465451 <6>[ 598.302160][ T5534] [btmtk_info] [BGF dump suspend/wakeup] [0x18060790]=[0x00005c5d], [0x18060794]=[0xf002fec0], [0x18060c00]=[0x90200001] <6>[ 598.302179][ T5534] [btmtk_info] [bt host info] [0][BR_INQURY_SCAN : 0x00120800] [1][BR_SCAN_MODE : 0x00000002] [2][BLE_SCAN : 0x00000000] [3-16] not set <5>[ 598.302188][ T5534] mbraink_PM_POST_SUSPEND <5>[ 598.302484][ T5534] swpm_sp_routine regular update(1), total_suspend(9542542) <5>[ 598.302513][ T5534] mbraink_PM_POST_SUSPEND exit <6>[ 598.302523][ T5534] PM: suspend exit <4>[ 598.329934][ T672] audit: audit_lost=16666 audit_rate_limit=5 audit_backlog_limit=64 <3>[ 598.329950][ T672] audit: rate limit exceeded 这是Android kernel_log中的一段,这一段log在打印什么
最新发布
08-29
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值