[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 12/12] xen/events: use the FIFO-based ABI if available

On 16/08/13 18:47, Wei Liu wrote:
> On Fri, Aug 09, 2013 at 07:15:21PM +0100, David Vrabel wrote:
>> From: David Vrabel <david.vrabel@xxxxxxxxxx>
>> If the hypervisor supports the FIFO-based ABI, enable it by
>> initializing the control block for the boot VCPU and subsequent VCPUs
>> as they are brought up.  The event array is expanded as required when
>> event ports are setup.
>> This implementation has some known limitations:

... because I haven't implemented them yet.

>> - Migration will not work as the control blocks or event arrays are
>>   not remapped by Xen at the destination.
> Is it possible to hook into xen_vcpu_restore to make it work?

Yes, I think so.

>> - The timer VIRQ which previously was treated as the highest priority
>>   event has the default priority.
> So what's missing from the series is a patch that allows kernel to
> actually make use of the priority queues? IMHO it's not just about the
> timer VIRQ. How do you plan to expose this interface to drivers?

There will be Xen-specific xen_evtchn_set_priority() call.  I don't
think it can be usefully exposed to non-Xen-specific hardware drivers
using PIRQs.

I expect to use this for boosting the priority of the timer interrupt only.

>> +static int __cpuinit fifo_cpu_notification(struct notifier_block *self,
>> +                                       unsigned long action, void *hcpu)
>> +{
>> +    int cpu = (long)hcpu;
>> +    int ret = 0;
>> +
>> +    switch (action) {
>> +    case CPU_UP_PREPARE:
>> +            ret = fifo_init_control_block(cpu);
>> +            break;
> On the hypervisor side fifo_init_control_block would return -EINVAL if
> this CPU has previous mapped control block.

I need to look into this -- CPU hotplug is not something I really looked
at or tried yet.  Probably need to check if we have already done this.

> Do you need to tear down the control block when you offline a CPU? (That
> would mean another sub-op for the interface)

None of the other per-VCPU is state appears to be cleaned up when a
guest offlines a VCPU.  e.g., there is a VCPUOP_register_vcpu_info but
no VCPUOP_unregister_vcpu_info.


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.