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

Reply via email to