> Date: Fri, 23 Jan 2015 22:52:37 +1000
> From: David Gwynne <da...@gwynne.id.au>
> 
> when a softint gets scheduled, we set a bit in the current cpus
> cpu_info structure. that doesnt have to be an interlocked operation
> to be locally atomic.
> 
> ok?

Hmm, but it will need to be if we ever want to have the ability to
schedule softinterrupts on different CPUs.

> Index: arch/amd64/amd64/intr.c
> ===================================================================
> RCS file: /cvs/src/sys/arch/amd64/amd64/intr.c,v
> retrieving revision 1.40
> diff -u -p -r1.40 intr.c
> --- arch/amd64/amd64/intr.c   6 Jan 2015 12:50:47 -0000       1.40
> +++ arch/amd64/amd64/intr.c   23 Jan 2015 12:50:20 -0000
> @@ -721,6 +721,6 @@ softintr(int sir)
>  {
>       struct cpu_info *ci = curcpu();
>  
> -     __asm volatile("lock; orq %1, %0" :
> +     __asm volatile("orq %1, %0" :
>           "=m"(ci->ci_ipending) : "ir" (1UL << sir));
>  }
> 
> 

Reply via email to