> On 28. Jul 2025, at 12:35, Philippe Mathieu-Daudé <phi...@linaro.org> wrote:
> 
> On 26/7/25 00:30, Mohamed Mediouni wrote:
>> Instead of considering reads there to be fatal, mark it as unimplemented.
>> This is to allow experimentation on using configurations other than the 
>> Apple vGIC.
> 
> FYI 
> https://lore.kernel.org/qemu-devel/20250623121845.7214-11-phi...@linaro.org/.

By the way, am running with a similar patch to that and this is what I get - 
probably screwed up something trivial though…

[   60.090520] rcu: INFO: rcu_preempt detected stalls on CPUs/tasks:
[   60.090950] rcu: 0-....: (0 ticks this GP) idle=ce00/0/0x0 softirq=1/1 fqs=0 
(false positive?)
[   60.091518] rcu: (detected by 2, t=60003 jiffies, g=-1199, q=16542 ncpus=4)
[   60.092016] Sending NMI from CPU 2 to CPUs 0:
[   60.092286] NMI backtrace for cpu 0
[   60.092531] CPU: 0 UID: 0 PID: 0 Comm: swapper/0 Not tainted 
6.11.0-13-generic #14-Ubuntu
[   60.093056] Hardware name: linux,dummy-virt (DT)
[   60.093476] pstate: 61400005 (nZCv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--)
[   60.093977] pc : cpuidle_idle_call+0xb4/0x208
[   60.094226] lr : cpuidle_idle_call+0x19c/0x208
[   60.094526] sp : ffffa9fa513e3d80
[   60.094782] x29: ffffa9fa513e3d90 x28: 0000000000000000 x27: 0000000000000000
[   60.095263] x26: 0000000000000000 x25: 0000000000000003 x24: 0000000000000000
[   60.095926] x23: 00000000000000c0 x22: ffffa9fa513edde8 x21: ffffa9fa513f97c0
[   60.096412] x20: 0000000000000000 x19: 0000000000000000 x18: ffffa9fa513fba68
[   60.096982] x17: 0000000000000000 x16: 0000000000000000 x15: 0000000000000000
[   60.097511] x14: 0000000000000000 x13: 0000000000000000 x12: 0000000000000000
[   60.097996] x11: 0000000000000000 x10: 96d8ff766a2f06fb x9 : ffffa9fa4e20bb64
[   60.098518] x8 : ffffa9fa513fb9e8 x7 : 0000000000000000 x6 : 0000000000000000
[   60.099103] x5 : 0000000000000000 x4 : 0000000000000000 x3 : 0000000000000000
[   60.099541] x2 : 0000000000000000 x1 : 0000000000000000 x0 : 0000000000000000
[   60.100065] Call trace:
[   60.100288]  cpuidle_idle_call+0xb4/0x208
[   60.100539]  do_idle+0xac/0x120
[   60.100817]  cpu_startup_entry+0x40/0x58
[   60.101123]  rest_init+0x118/0x120
[   60.101349]  start_kernel+0x49c/0x4a8
[   60.101670]  __primary_switched+0x88/0x98
[   60.102343] rcu: rcu_preempt kthread timer wakeup didn't happen for 60007 
jiffies! g-1199 f0x0 RCU_GP_WAIT_FQS(5) ->state=0x402
[   60.103135] rcu: Possible timer handling issue on cpu=0 timer-softirq=0
[   60.103605] rcu: rcu_preempt kthread starved for 60010 jiffies! g-1199 f0x0 
RCU_GP_WAIT_FQS(5) ->state=0x402 ->cpu=0
[   60.104371] rcu: Unless rcu_preempt kthread gets sufficient CPU time, OOM is 
now expected behavior.
[   60.104974] rcu: RCU grace-period kthread stack dump:
[   60.105279] task:rcu_preempt     state:I stack:0     pid:17    tgid:17    
ppid:2      flags:0x00000008
[   60.105921] Call trace:
[   60.106125]  __switch_to+0xbc/0x108
[   60.106391]  __schedule+0x298/0x770
[   60.106630]  schedule+0x40/0x128
[   60.106836]  schedule_timeout+0xa0/0x1c8
[   60.107084]  rcu_gp_fqs_loop+0x124/0x540
[   60.107314]  rcu_gp_kthread+0x158/0x198
[   60.107536]  kthread+0xf4/0x108
[   60.107727]  ret_from_fork+0x10/0x20

>> Signed-off-by: Mohamed Mediouni <moha...@unpredictable.fr>
>> ---
>>  target/arm/hvf/hvf.c | 10 ++++++++++
>>  1 file changed, 10 insertions(+)
>> diff --git a/target/arm/hvf/hvf.c b/target/arm/hvf/hvf.c
>> index f5b82cdce1..c3df7e07e8 100644
>> --- a/target/arm/hvf/hvf.c
>> +++ b/target/arm/hvf/hvf.c
>> @@ -299,6 +299,7 @@ void hvf_arm_init_debug(void)
>>  /* EL2 registers */
>>  #define SYSREG_CNTHCTL_EL2    SYSREG(3, 4, 14, 1, 0)
>>  #define SYSREG_MDCCINT_EL1    SYSREG(2, 0, 0, 2, 0)
>> +#define SYSREG_CNTP_CVAL_EL0   SYSREG(3, 3, 14, 2, 2)
>>    #define WFX_IS_WFE (1 << 0)
>>  @@ -1398,6 +1399,12 @@ static int hvf_sysreg_read(CPUState *cpu, uint32_t 
>> reg, uint64_t *val)
>>      case SYSREG_CNTHCTL_EL2:
>>          assert_hvf_ok(hv_vcpu_get_sys_reg(cpu->accel->fd, 
>> HV_SYS_REG_CNTHCTL_EL2, val));
>>          return 0;
>> +    case SYSREG_CNTP_CTL_EL0:
>> +        qemu_log_mask(LOG_UNIMP, "Unsupported read from CNTP_CTL_EL0\n");
>> +        return 0;
>> +    case SYSREG_CNTP_CVAL_EL0:
>> +        qemu_log_mask(LOG_UNIMP, "Unsupported read from CNTP_CVAL_EL0\n");
>> +        return 0;
>>      case SYSREG_MDCCINT_EL1:
>>          assert_hvf_ok(hv_vcpu_get_sys_reg(cpu->accel->fd, 
>> HV_SYS_REG_MDCCINT_EL1, val));
>>          return 0;
>> @@ -1718,6 +1725,9 @@ static int hvf_sysreg_write(CPUState *cpu, uint32_t 
>> reg, uint64_t val)
>>           */
>>          qemu_log_mask(LOG_UNIMP, "Unsupported write to CNTP_CTL_EL0\n");
>>          return 0;
>> +    case SYSREG_CNTP_CVAL_EL0:
>> +        qemu_log_mask(LOG_UNIMP, "Unsupported write to CNTP_CVAL_EL0\n");
>> +        return 0;
>>      case SYSREG_OSDLR_EL1:
>>          /* Dummy register */
>>          return 0;
> 
> 


Reply via email to