On Mon, 28 Jul 2025 15:55:28 +0200, Johannes Berg wrote: > On Sun, 2025-07-27 at 14:29 +0800, Tiwei Bie wrote: > > > > +static void IPI_handler(int cpu, struct uml_pt_regs *regs) > > +{ > > + struct pt_regs *old_regs = set_irq_regs((struct pt_regs *)regs); > > + unsigned char c; > > + int fd; > > + > > + irq_enter(); > > + > > + if (current->mm) > > + os_alarm_process(current->mm->context.id.pid); > > + > > + fd = uml_cpu_data[cpu].ipi_pipe[0]; > > + while (os_read_file(fd, &c, 1) == 1) { > > We were discussing the IPI stuff and started thinking maybe an RT signal > with sigqueue() passing the value to the si_value in SA_SIGINFO data > would be possible and have less overhead? That way there's nothing on > the SIGIO path, and you don't need a read() for the type of IPI?
I like this idea. I will give it a try. Thanks! Regards, Tiwei