From: "Zhu, Lingshan" <lingshan.zhu@intel.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Parav Pandit <parav@nvidia.com>,
"jasowang@redhat.com" <jasowang@redhat.com>,
"eperezma@redhat.com" <eperezma@redhat.com>,
"cohuck@redhat.com" <cohuck@redhat.com>,
"stefanha@redhat.com" <stefanha@redhat.com>,
"virtio-comment@lists.oasis-open.org"
<virtio-comment@lists.oasis-open.org>
Subject: Re: [virtio-comment] RE: [PATCH V2 3/6] virtio: dont reset vqs when SUSPEND
Date: Fri, 17 Nov 2023 18:13:50 +0800 [thread overview]
Message-ID: <cd3e331c-8fc0-4f96-b049-dee3c09829c9@intel.com> (raw)
In-Reply-To: <20231116070024-mutt-send-email-mst@kernel.org>
[-- Attachment #1: Type: text/plain, Size: 10646 bytes --]
On 11/16/2023 8:09 PM, Michael S. Tsirkin wrote:
> On Thu, Nov 16, 2023 at 06:09:38PM +0800, Zhu, Lingshan wrote:
>>
>> On 11/16/2023 1:35 AM, Parav Pandit wrote:
>>>> From: Zhu, Lingshan<lingshan.zhu@intel.com>
>>>> Sent: Monday, November 13, 2023 2:53 PM
>>>>
>>>> On 11/10/2023 2:31 PM, Parav Pandit wrote:
>>>>>> From: Zhu, Lingshan<lingshan.zhu@intel.com>
>>>>>> Sent: Friday, November 10, 2023 11:52 AM
>>>>>>
>>>>>> On 11/9/2023 6:15 PM, Parav Pandit wrote:
>>>>>>>> From: Zhu, Lingshan<lingshan.zhu@intel.com>
>>>>>>>> Sent: Thursday, November 9, 2023 3:28 PM
>>>>>>>>
>>>>>>>> On 11/9/2023 1:46 AM, Michael S. Tsirkin wrote:
>>>>>>>>> On Tue, Nov 07, 2023 at 05:27:23PM +0800, Zhu, Lingshan wrote:
>>>>>>>>>> On 11/6/2023 5:49 PM, Michael S. Tsirkin wrote:
>>>>>>>>>>> On Fri, Nov 03, 2023 at 06:34:34PM +0800, Zhu Lingshan wrote:
>>>>>>>>>>>> When SUSPEND is set, device states and virtqueue states should
>>>>>>>>>>>> be stablized, therefore the driver should not reset vqs when
>>>>>>>>>>>> SUSPEND is set in device status.
>>>>>>>>>>>>
>>>>>>>>>>>> Signed-off-by: Zhu Lingshan<lingshan.zhu@intel.com>
>>>>>>>>>>>> ---
>>>>>>>>>>>> content.tex | 3 +++
>>>>>>>>>>>> 1 file changed, 3 insertions(+)
>>>>>>>>>>>>
>>>>>>>>>>>> diff --git a/content.tex b/content.tex index bcc9d4b..060b5c2
>>>>>>>>>>>> 100644
>>>>>>>>>>>> --- a/content.tex
>>>>>>>>>>>> +++ b/content.tex
>>>>>>>>>>>> @@ -444,6 +444,9 @@ \subsubsection{Virtqueue
>>>>>>>>>>>> Reset}\label{sec:Basic
>>>>>>>> Facilities of a Virtio Device /
>>>>>>>>>>>> The device MUST reset any state of a virtqueue to the default
>>>> state,
>>>>>>>>>>>> including the available state and the used state.
>>>>>>>>>>>> +If VIRTIO_F_SUSPEND is negotiated and SUSPEND is set in
>>>>>>>>>>>> +\field{device status}, the driver SHOULD NOT reset any virtqueues.
>>>>>>>>>>>> +
>>>>>>>>>>>> \drivernormative{\paragraph}{Virtqueue Reset}{Basic
>>>>>>>>>>>> Facilities of a
>>>>>>>> Virtio Device / Virtqueues / Virtqueue Reset / Virtqueue Reset}
>>>>>>>>>>>> After the driver tells the device to reset a queue, the
>>>>>>>>>>>> driver MUST verify that
>>>>>>>>>>> Seems somewhat arbitrary and breaks the claim that the feature
>>>>>>>>>>> is orthogonal and can have uses besides migration.
>>>>>>>>>> when suspended, the device is frozen.
>>>>>>>>>> The driver is aware of this process and so should not reset the vqs I
>>>> think.
>>>>>>>>> Again that is only true because you want to use it for migration.
>>>>>>>>> But then you can't claim it's a generic facility.
>>>>>>>> I don't get it. The device status is a basic facility.
>>>>>>>>
>>>>>>>> We need to SUSPEND the device by setting SUSPEND bit, to stabilize
>>>>>>>> the device states for migration.
>>>>>>> Is the PCI's PM time not enough to suspend the device?
>>>>>>> For large device I could imagine it could be short.
>>>>>> As you see, PCI PM, so this is a layer violation, virtio should be
>>>>>> self contained,
>>>>> If you think it is layer violation, than suspend bit for sure is not needed. PCI
>>>> PM interface should suspend/resume the device on D0<->D3 state transitions.
>>>> Doesn't make sense logically, because it is layer violation, so you want it to be
>>>> worse? For example, virito writes 0 to device status to reset a device, not by PCI.
>>> All these layer violation thing is just abstract to me.
>>> Your argument contradicts with your fellow author and yourself.
>> I don't see how, we keep telling you virtio should be self contained, and
>> suspend by PCI PM is a
>> layer volition, this is a fact, right?
> Not really. Look at the charter - when available we should use platform
> capabilities because it makes it easier to write drivers.
I think that is transport specific implementation, for example pci
common cfg.
>
>
>>> I don’t want to make it worse.
>>> If you think its layer violation, just depend on the PCI PM, no need to include new suspend bit.
>> Again, virtio should be self-contained, not layer volited, for example, we
>> reset virito devices
>> by writing 0 to device status, not by PCI FLR.
> There are some advantage to doing it like this, e.g. one does not need
> to save and restore config space. What are advatages of suspend via this
> bit?
suspend a device by the device status is the same as how we enable a
virito device.
Doing this by PCI is clearly a layer volition, and does not work for
other transports.
>
>>>>>> and what about MMIO and CCW?
>>>>> They have largely lacked the richness of PCI transport. So those transport
>>>> needs to evolve.
>>>> I am not sure CCW and MMIO maintainers want to hear this.
>>>>> Otherwise, PCI offers rich transport facilities compared to MMIO, hence, it will
>>>> continue wider use.
>>>> you know this SUSPEND bit work fine on all transport, right? Because
>>>> device_status is transport independent.
>>> I want to emphasize that I am not against the suspend bit as long as it is guest driver controlled without interfering the device migration flow (like rest of the state).
>> When migrate a device, it is the host who suspends the device. The reason is
>> the live migration process should be transparent to
>> the guest, so we should suspend the guest first, then suspend the device(by
>> host).
>>> The practical reason for suspending functionality under guest control is, that resuming/suspending the large device can take time.
>>> So let it be in guest driver control. No need to muddy with device migration flow.
>> The time cost is reasonable in O(N) no matter how you suspend/resume the
>> device.
> Very much depends. Big O notation can be misleading. If you have to
> repeat an operation 1000 times that's 1000 * N and suddenly you are
> going from milliseconds to seconds.
I mean enable 100 queues cost more time then enable 1 vq no matter
how we enable it. that is O(N)
>
>
>>>>>> This should be a basic facility.
>>>>> Other transport can also offer like PCI.
>>>> Do you want to work for these transport? Implementing the new features as
>>>> PCI?
>>> Not presently as PCI as more features than rest of the two.
>>> What I read about ccw is: " S/390 based virtual machines support neither PCI nor MMIO".
>>>
>>> And I also read, "The IBM System/390 is a discontinued mainframe product family implementing".
>>>
>>> So I don’t know who needs to extend ccw.
>>> And if one needs, those maintainers will extend it to match to PCI standard.
>> So these features are even not planned, so don't depend on them.
> But again can one suspend ccw device? If you are adding this feature and
> claiming it's supported for all transports you better find out
> what does it do.
I am not an expert on CCW, anything block we suspend a CCW device by
this bit?
This seems only controlled by the device itself.
>
>
>>>>>>> In that case if there is suspend the device available, it will be
>>>>>>> used by the
>>>>>> guest driver itself, hypervisor wouldn’t know about it when those
>>>>>> registers are not trapped.
>>>>>>> So we need two ways to suspend.
>>>>>>> One is guest visible, and guest controlled.
>>>>>>> Second is hypervisor control to fulfill the device migration needs.
>>>>>> The guest can eve reset the device.
>>>>>>> So if you can please take a look if the proposed admin command to
>>>>>> freeze/stop mode can be used in the emulated register case or not.
>>>>>>> It helps to have the suspend bit in guest control as well
>>>>>>> with/without
>>>>>> emulation mode.
>>>>>> Parav, please believe I have read your series, I didn't comment there
>>>>>> because I want to avoid further conflicts/debating, we have done these
>>>> enough.
>>>>> I believe the series posted in v3 can support vdpa use case as well.
>>>>> So I will progress to post v4.
>>>>>
>>>>>> As explained before, freeze/stop the device by PCI is a layer violation.
>>>>> I am afraid, we have different vision.
>>>>> I don’t see any layer violation.
>>>>> Suspend is enough in the PCI PM.
>>>>> Our vision is more aligned with rest of the hypervisor knobs that owns the
>>>> migration framework.
>>>> I think I have explained, virito builds on other transport and it should be self-
>>>> contained, so far so good.
>>> Virtio without any transport binding is just blank paper discussion.
>> virtio is built on some transports, but not bind to any.
> Binding is an OS specific thing, but e.g. under Linux transport drivers bind to
> devices then virtio drivers bind to virtio bus. No binding -> nothing
> works.
I think general facilities are better not only work on a specific transport
>
>>>>>> And device status can be pass-through(without emulation, just map it
>>>>>> to
>>>>>> guest) to the guest or trapped(trap and emulate by the hypervisor,
>>>>>> for example set_status in vDPA).
>>>>> When it is pass-through, it is controlled by the guest, so for example, if the
>>>> guest resets the device, hypervisor has lost the control of migration context etc.
>>>>> Hence, hypervisor needs a channel which is not guest owned.
>>>>>
>>>>> Same channel can work when trap+emulation is done.
>>>> It is the guest owns the device, it can reset the device, once reset, the device
>>>> context are cleared.
>>> Hypervisor do not have the ability to read/write the device context. It lost the channel as hypervisor is not involved in trap+emulation.
>>> So it is not helpful in one use case.
>>>
>>> Admin commands can work even with trap+emulation mode.
>>>
>>> What is missing, that should be added?
>> as explained above, when live migration, the guest should be suspended
>> first, at this point,
>> the host owns the device, it has access to the device.
> Where do you say this in the spec patch?
VM live migration is not in this spec.
If we suspend the device first, then the guest may detect IO errors.
>
>
>>>>>>>> This can also be used for debugging I think.
>>>>>>> As Michael listed, a dedicated debug interface is usually more
>>>>>>> useful instead
>>>>>> of in-band.
>>>>>> re-using another facility without extra efforts is not a bad thing anyway.
>>>>> I just don’t see how a suspend bit some debug feature.
>>>>> Almost everything with that regard is a debug feature to me.
>>>> suspend then check the device states?
>>> You already suspended the device, so device state is already changed.
>>> All debug information is changed, so not useful now.
>> When suspended, the device should keep and stabilize its device states,
>> at least in my series it should behave like this.
> That's vague. What does it mean exactly and what happens if
> some external event causes state change?
it is suspended, somehow like powered-down, so it should not
respond to the events until resume.
>
[-- Attachment #2: Type: text/html, Size: 21248 bytes --]
next prev parent reply other threads:[~2023-11-17 10:13 UTC|newest]
Thread overview: 186+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-03 10:34 [virtio-comment] [PATCH V2 0/6] introduce basic facilities for virito live migration Zhu Lingshan
2023-11-03 10:34 ` [virtio-comment] [PATCH V2 1/6] virtio: introduce virtqueue state Zhu Lingshan
2023-11-03 11:35 ` [virtio-comment] " Parav Pandit
2023-11-03 14:39 ` [virtio-comment] " Zhu, Lingshan
2023-11-03 11:52 ` Michael S. Tsirkin
2023-11-03 14:49 ` Zhu, Lingshan
2023-11-06 9:35 ` Michael S. Tsirkin
2023-11-06 9:42 ` Zhu, Lingshan
2023-11-06 9:45 ` Michael S. Tsirkin
2023-11-07 8:11 ` Zhu, Lingshan
2023-11-07 8:22 ` Michael S. Tsirkin
2023-11-08 4:08 ` Zhu, Lingshan
2023-11-03 10:34 ` [virtio-comment] [PATCH V2 2/6] virtio: introduce SUSPEND bit in device status Zhu Lingshan
2023-11-03 11:35 ` [virtio-comment] " Parav Pandit
2023-11-03 14:55 ` [virtio-comment] " Zhu, Lingshan
2023-11-03 15:54 ` [virtio-comment] " Parav Pandit
2023-11-06 3:29 ` [virtio-comment] " Zhu, Lingshan
2023-11-06 4:07 ` [virtio-comment] " Parav Pandit
2023-11-06 9:21 ` Zhu, Lingshan
2023-11-06 10:52 ` Parav Pandit
2023-11-07 8:21 ` Zhu, Lingshan
2023-11-07 8:33 ` Michael S. Tsirkin
2023-11-07 9:24 ` Zhu, Lingshan
2023-11-08 7:42 ` Michael S. Tsirkin
2023-11-06 9:43 ` [virtio-comment] " Michael S. Tsirkin
2023-11-07 9:09 ` Zhu, Lingshan
2023-11-08 17:55 ` Michael S. Tsirkin
2023-11-09 9:55 ` Zhu, Lingshan
2023-11-03 10:34 ` [virtio-comment] [PATCH V2 3/6] virtio: dont reset vqs when SUSPEND Zhu Lingshan
2023-11-06 9:49 ` [virtio-comment] " Michael S. Tsirkin
2023-11-07 9:27 ` Zhu, Lingshan
2023-11-08 17:46 ` Michael S. Tsirkin
2023-11-09 9:58 ` Zhu, Lingshan
2023-11-09 10:15 ` [virtio-comment] " Parav Pandit
2023-11-10 6:22 ` [virtio-comment] " Zhu, Lingshan
2023-11-10 6:31 ` [virtio-comment] " Parav Pandit
2023-11-13 9:23 ` Zhu, Lingshan
2023-11-15 17:35 ` Parav Pandit
2023-11-16 10:09 ` Zhu, Lingshan
2023-11-16 10:19 ` Parav Pandit
2023-11-16 12:09 ` Michael S. Tsirkin
2023-11-17 10:13 ` Zhu, Lingshan [this message]
2023-11-17 11:04 ` Michael S. Tsirkin
2023-11-22 1:41 ` Zhu, Lingshan
2023-11-22 7:30 ` Michael S. Tsirkin
2023-11-13 3:34 ` [virtio-comment] " Jason Wang
2023-11-15 17:39 ` [virtio-comment] " Parav Pandit
2023-11-16 4:19 ` Jason Wang
2023-11-16 5:27 ` Parav Pandit
2023-11-16 10:12 ` Zhu, Lingshan
2023-11-21 7:33 ` Jason Wang
2023-11-21 16:32 ` Parav Pandit
2023-11-22 5:28 ` Jason Wang
2023-11-22 6:11 ` Parav Pandit
2023-11-24 3:35 ` Jason Wang
2023-11-24 9:04 ` Michael S. Tsirkin
2023-11-24 11:50 ` Jason Wang
2023-11-24 12:17 ` Michael S. Tsirkin
2023-11-24 13:01 ` Jason Wang
2023-11-24 14:45 ` Michael S. Tsirkin
2023-11-27 6:38 ` Jason Wang
2023-11-27 8:27 ` Michael S. Tsirkin
2023-11-27 9:54 ` Zhu, Lingshan
2023-11-21 21:18 ` Michael S. Tsirkin
2023-11-22 1:51 ` Zhu, Lingshan
2023-11-22 6:47 ` Parav Pandit
2023-11-22 10:04 ` Zhu, Lingshan
2023-11-22 10:14 ` Parav Pandit
2023-11-22 6:49 ` Michael S. Tsirkin
2023-11-22 10:03 ` Zhu, Lingshan
2023-11-22 13:37 ` Michael S. Tsirkin
2023-11-22 5:28 ` Jason Wang
2023-11-22 6:32 ` Parav Pandit
2023-11-24 3:25 ` Jason Wang
2023-11-24 6:20 ` Michael S. Tsirkin
2023-11-24 6:28 ` Jason Wang
2023-11-24 6:43 ` Zhu, Lingshan
2023-11-24 8:50 ` Michael S. Tsirkin
2023-11-24 11:51 ` Jason Wang
2023-11-03 10:34 ` [virtio-comment] [PATCH V2 4/6] virtio-pci: implement VIRTIO_F_QUEUE_STATE Zhu Lingshan
2023-11-03 11:35 ` [virtio-comment] " Parav Pandit
2023-11-03 14:57 ` [virtio-comment] " Zhu, Lingshan
2023-11-03 15:50 ` Parav Pandit
2023-11-06 3:31 ` Zhu, Lingshan
2023-11-06 4:12 ` Parav Pandit
2023-11-06 9:27 ` Zhu, Lingshan
2023-11-06 10:52 ` Parav Pandit
2023-11-07 9:31 ` Zhu, Lingshan
2023-11-08 17:44 ` Michael S. Tsirkin
2023-11-09 10:00 ` Zhu, Lingshan
2023-11-09 10:02 ` Michael S. Tsirkin
2023-11-10 6:52 ` Zhu, Lingshan
2023-11-10 12:31 ` Parav Pandit
2023-11-13 3:46 ` Jason Wang
2023-11-13 9:23 ` Zhu, Lingshan
2023-11-15 17:36 ` Parav Pandit
2023-11-09 6:28 ` Parav Pandit
2023-11-09 8:41 ` Michael S. Tsirkin
2023-11-09 9:10 ` Parav Pandit
2023-11-09 9:53 ` Michael S. Tsirkin
2023-11-09 10:11 ` Parav Pandit
2023-11-09 10:09 ` Zhu, Lingshan
2023-11-09 10:25 ` Parav Pandit
2023-11-10 7:52 ` Zhu, Lingshan
2023-11-10 12:31 ` Parav Pandit
2023-11-13 9:25 ` Zhu, Lingshan
2023-11-15 17:35 ` Parav Pandit
2023-11-16 10:14 ` Zhu, Lingshan
2023-11-16 10:21 ` Parav Pandit
2023-11-17 10:02 ` Zhu, Lingshan
2023-11-17 10:06 ` Parav Pandit
2023-11-21 4:30 ` Jason Wang
2023-11-21 16:26 ` Parav Pandit
2023-11-22 4:15 ` Jason Wang
2023-11-22 7:15 ` Michael S. Tsirkin
2023-11-22 7:33 ` Parav Pandit
2023-11-22 14:43 ` Michael S. Tsirkin
2023-11-17 10:45 ` Michael S. Tsirkin
2023-11-22 1:32 ` Zhu, Lingshan
2023-11-22 6:53 ` Michael S. Tsirkin
2023-11-08 17:56 ` Michael S. Tsirkin
2023-11-13 9:29 ` Zhu, Lingshan
2023-11-13 10:10 ` Michael S. Tsirkin
2023-11-03 10:34 ` [virtio-comment] [PATCH V2 5/6] virtio: introduce dirty page tracking facility Zhu Lingshan
2023-11-03 11:35 ` [virtio-comment] " Parav Pandit
2023-11-03 14:11 ` [virtio-comment] " Zhu, Lingshan
2023-11-03 10:34 ` [virtio-comment] [PATCH V2 6/6] virtio-pci: implement dirty page tracking Zhu Lingshan
2023-11-03 10:46 ` [virtio-comment] " Michael S. Tsirkin
2023-11-03 14:21 ` Zhu, Lingshan
2023-11-06 9:16 ` Zhu, Lingshan
2023-11-06 10:15 ` Michael S. Tsirkin
2023-11-07 9:43 ` Zhu, Lingshan
2023-11-07 10:43 ` Michael S. Tsirkin
2023-11-03 10:50 ` Michael S. Tsirkin
2023-11-03 11:35 ` [virtio-comment] " Parav Pandit
2023-11-03 15:02 ` [virtio-comment] " Zhu, Lingshan
2023-11-03 15:47 ` [virtio-comment] " Parav Pandit
2023-11-05 16:12 ` [virtio-comment] " Michael S. Tsirkin
2023-11-06 3:58 ` Zhu, Lingshan
2023-11-06 10:33 ` Michael S. Tsirkin
2023-11-07 9:48 ` Zhu, Lingshan
2023-11-06 4:03 ` [virtio-comment] " Parav Pandit
2023-11-07 11:13 ` [virtio-comment] " Michael S. Tsirkin
2023-11-08 9:29 ` Zhu, Lingshan
2023-11-08 17:18 ` Michael S. Tsirkin
2023-11-09 10:29 ` Zhu, Lingshan
2023-11-09 10:41 ` Michael S. Tsirkin
2023-11-10 7:24 ` Zhu, Lingshan
2023-11-06 3:52 ` Zhu, Lingshan
2023-11-06 4:34 ` [virtio-comment] " Parav Pandit
2023-11-06 9:34 ` [virtio-comment] " Zhu, Lingshan
2023-11-06 10:52 ` [virtio-comment] " Parav Pandit
2023-11-06 11:05 ` [virtio-comment] " Michael S. Tsirkin
2023-11-06 11:07 ` [virtio-comment] " Parav Pandit
2023-11-06 11:21 ` [virtio-comment] " Michael S. Tsirkin
2023-11-07 9:52 ` Zhu, Lingshan
2023-11-07 11:33 ` Michael S. Tsirkin
2023-11-08 9:30 ` Zhu, Lingshan
2023-11-08 17:19 ` Michael S. Tsirkin
2023-11-09 10:34 ` Zhu, Lingshan
2023-11-06 11:13 ` [virtio-comment] " Parav Pandit
2023-11-07 10:01 ` [virtio-comment] " Zhu, Lingshan
2023-11-07 10:25 ` Michael S. Tsirkin
2023-11-07 11:12 ` [virtio-comment] " Parav Pandit
2023-11-07 11:24 ` Parav Pandit
2023-11-08 7:11 ` [virtio-comment] " Jason Wang
2023-11-08 7:16 ` [virtio-comment] " Parav Pandit
2023-11-07 11:31 ` [virtio-comment] " Michael S. Tsirkin
2023-11-08 9:36 ` Zhu, Lingshan
2023-11-07 12:00 ` Michael S. Tsirkin
2023-11-06 10:29 ` Michael S. Tsirkin
2023-11-06 11:21 ` [virtio-comment] " Parav Pandit
2023-11-06 11:27 ` [virtio-comment] " Michael S. Tsirkin
2023-11-06 11:31 ` [virtio-comment] " Parav Pandit
2023-11-07 10:02 ` [virtio-comment] " Zhu, Lingshan
2023-11-07 11:36 ` Michael S. Tsirkin
2023-11-05 16:20 ` Michael S. Tsirkin
2023-11-06 3:51 ` [virtio-comment] " Parav Pandit
2023-11-03 14:32 ` [virtio-comment] " Zhu, Lingshan
2023-11-05 16:16 ` Michael S. Tsirkin
2023-11-06 4:06 ` Zhu, Lingshan
2023-11-06 10:22 ` Michael S. Tsirkin
2023-11-07 10:44 ` Zhu, Lingshan
2023-11-07 11:29 ` Michael S. Tsirkin
2023-11-07 8:01 ` [virtio-comment] Re: [PATCH V2 0/6] introduce basic facilities for virito live migration Michael S. Tsirkin
2023-11-08 10:19 ` Zhu, Lingshan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cd3e331c-8fc0-4f96-b049-dee3c09829c9@intel.com \
--to=lingshan.zhu@intel.com \
--cc=cohuck@redhat.com \
--cc=eperezma@redhat.com \
--cc=jasowang@redhat.com \
--cc=mst@redhat.com \
--cc=parav@nvidia.com \
--cc=stefanha@redhat.com \
--cc=virtio-comment@lists.oasis-open.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox