[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3] xen: make sure stop_machine_run() is always called in a tasklet
On 29.02.2020 06:47, Jürgen Groß wrote: > On 28.02.20 20:06, Andrew Cooper wrote: >> On 28/02/2020 17:13, Juergen Gross wrote: >>> @@ -700,6 +688,32 @@ int >>> microcode_update(XEN_GUEST_HANDLE_PARAM(const_void) buf, unsigned long len) >>> return ret; >>> } >>> >>> +int microcode_update(XEN_GUEST_HANDLE_PARAM(const_void) buf, unsigned long >>> len) >>> +{ >>> + int ret; >>> + struct ucode_buf *buffer; >>> + >>> + if ( len != (uint32_t)len ) >>> + return -E2BIG; >>> + >>> + if ( microcode_ops == NULL ) >>> + return -EINVAL; >>> + >>> + buffer = xmalloc_flex_struct(struct ucode_buf, buffer, len); >>> + if ( !buffer ) >>> + return -ENOMEM; >>> + >>> + ret = copy_from_guest(buffer->buffer, buf, len); >>> + if ( ret ) >>> + { >>> + xfree(buffer); >>> + return -EFAULT; >>> + } >>> + buffer->len = len; >>> + >>> + return continue_hypercall_on_cpu(0, microcode_update_helper, buffer); >> >> Any reason why cpu 0 here? There is no restriction at the moment, and >> running the tasklet on the current CPU is surely better than poking >> CPU0's tasklet queue remotely, then interrupting it. > > As stop_machine_run() is scheduling a tasklet on all other cpus it > doesn't really matter. In the end I don't really mind either way. I think any case where we can avoid assigning special meaning to CPU 0 is helpful. While we won't get to being able to offline the BSP any time soon, we shouldn't put more road blocks on the path there. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |