xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: olekstysh@gmail.com, sstabellini@kernel.org,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
	vlad.babchuk@gmail.com, andrii.anisov@gmail.com,
	stefano@aporeto.com, al1img@gmail.com,
	Oleksandr Grytsov <oleksandr_grytsov@epam.com>,
	xen-devel@lists.xenproject.org, joculator@gmail.com
Subject: Re: [PATCH v3] displif: add ABI for para-virtual display
Date: Wed, 1 Mar 2017 18:40:14 +0200	[thread overview]
Message-ID: <7b47fa84-e7af-4608-c337-2f85686f87b6@gmail.com> (raw)
In-Reply-To: <6ceed905-a8f7-5b5c-ec1d-a4b794c15234@gmail.com>

Hi, Konrad!

On 02/17/2017 07:33 PM, Oleksandr Andrushchenko wrote:
> On 02/17/2017 06:33 PM, Konrad Rzeszutek Wilk wrote:
>> On Thu, Feb 16, 2017 at 10:36:01AM +0200, Oleksandr Andrushchenko wrote:
>>> On 02/15/2017 11:33 PM, Konrad Rzeszutek Wilk wrote:
>>>> .snip..
>>>>>>>>> I will define 2 sections:
>>>>>>>>>      *------------------ Connector Request Transport Parameters
>>>>>>>>> -------------------
>>>>>>>>>      *
>>>>>>>>>      * ctrl-event-channel
>>>>>>>>>      * ctrl-ring-ref
>>>>>>>>>      *
>>>>>>>>>      *------------------- Connector Event Transport Parameters
>>>>>>>>> --------------------
>>>>>>>>>      *
>>>>>>>>>      * event-channel
>>>>>>>>>      * event-ring-ref
>>>>>>>>>
>>>>>>>>>> Or is the other ring buffer the one that is created via 
>>>>>>>>>> 'gref_directory' ?
>>>>>>>>> no
>>>>>>>>> At the bottom:
>>>>>>>>>      * In order to deliver asynchronous events from back to 
>>>>>>>>> front a shared page
>>>>>>>>> is
>>>>>>>>>      * allocated by front and its gref propagated to back via 
>>>>>>>>> XenStore entries
>>>>>>>>>      * (event-XXX).
>>>>>>>> AAnd you may want to say this is guarded by REQ_ALLOC feature 
>>>>>>>> right?
>>>>>>> Not sure I understood you. Event path is totally independent
>>>>>>> from any feature, e.g. REQ_ALLOC.
>>>>>>> It just provides means to send async events
>>>>>>> from back to front, "page flip done" in my case.
>>>>>> <scratche his head> Why do you need a seperate ring to send
>>>>>> responses back? Why not use the same ring on which requests
>>>>>> were sent
>>>>> Ok, it seems we are not on the same page for rings/channels usage.
>>>>> Let me describe how those are used:
>>>>>
>>>>> 1. Command/control event channel and its corresponding ring are used
>>>>> to pass requests from front to back (XENDISPL_OP_XXX) and get 
>>>>> responses
>>>>> from the back. These are synchronous, use macros from ring.h:
>>>>> ctrl-event-channel + ctrl-ring-ref
>>>>> I call them "ctrl-" because this way front controls back, or sends 
>>>>> commands
>>>>> if you will. Maybe "cmd-" would fit better here?
>>>>>
>>>>> 2. Event channel - asynchronous path for the backend to signal 
>>>>> activity
>>>>> to the frontend, currently used for "page flip done" event which 
>>>>> is sent
>>>>> at some point of time after back has actually completed the page flip
>>>>> requested
>>>>> (so, before that the corresponding request was sent and response 
>>>>> received,
>>>>> but
>>>>> operation didn't complete yet, instead it was scheduled)
>>>>> No macros exist for this use-case in ring.h (kbdif+fbif implement
>>>>> this on their own, so do I)
>>>>> These are:  event-channel + event-ring-ref
>>>>> Probably here is the point from where confusion comes, naming.
>>>>> We can have something like "be-to-fe-event-channel" or anything else
>>>>> more cute and descriptive.
>>>>>
>>>>> Hope this explains the need for 2 paths
>>>> Aha!
>>>>
>>>> So this is like the network where there is an 'rx' and 'tx'!
>>> kind of
>>>> Now I get it.
>>> sorry, I was probably not clear
>>>> In that case why not just prefix it with 'in' and 'out'? Such as:
>>>>
>>>> 'out-ring-ref' and 'out-event-channel' and 'in-ring-ref' along
>>>> with 'in-event-channel'.
>>> hmmmm, it may confuse, because you must know "out"
>>> from which POV, e.g. frontend's or backend's.
>>> What is more, these "out-" and "in-" are... nameless?
>> Yes :-)
>>
>>> Can we still have something like "ctrl-"/"cmd-"/"req-"
>>> for the req/resp path and probably "evt-" for
>>> events from back to front?
>> I like the 'req' and 'evt-' part. That makes it more
>> clear I think.  But see below.
>>
>>>> Or perhaps better - borrow the same idea that Stefano came up for
>>>> 9pfs and PV calls - where his ring does both.
>>>>
>>>> Then you just need 'ring-ref', 'event-channel', 'max-page-ring-order'
>>>> (which must be 1 or larger).
>>>>
>>>> And you split the ring-ref in two - one for 'in' events and the other
>>>> part for 'out' events?
>>> yes, I saw current implementations (kbdif, fbif) and
>>> what Stefano did, but would rather stick to what is currently
>>> defined (I believe it is optimal as is)
>> Right, but with two protocols with that way ... perhaps you
>> could re-use some of what Stefano wrote? See below.
>>
>>> And hope, that maybe someone will put new functionality into ring.h
>>> to serve async events one day :)
>> That would be fantastic. And knowing Stefano I would think
>> he has alreadhy done so? (Or at least have an prototype patch
>> for this?)
>>
>> Re-using his mechanism in your driver means easier maintaince
>> as things are kind of using the same thing.
>>
>> Stefano, you wouldn't have an patch for the ring.h somewhere
>> would you?
> yes, if Stefano already has it, then I can re-use it
> Actually, going kbdif/fbif way was just because nothing is in ring.h 
> for that
>> .. snip..
>>> I am attaching the diff between v3 and v4 for your convenience
> I am specifically interested in the recovery section - does it look ok?
> So, I can put the same into sndif
Could you please review the recovery section - this is common to
both displif and sndif (so I can send sndif v18 with this in)
>> Thanks.
> Thank you,
> Oleksandr
Thank you


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

  reply	other threads:[~2017-03-01 16:40 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-02-10  7:29 [PATCH v3] displif: add ABI for para-virtual display Oleksandr Andrushchenko
2017-02-10  7:29 ` Oleksandr Andrushchenko
2017-02-10 21:27   ` Konrad Rzeszutek Wilk
2017-02-13  8:50     ` Oleksandr Andrushchenko
2017-02-14 20:27       ` Konrad Rzeszutek Wilk
2017-02-15  7:33         ` Oleksandr Andrushchenko
2017-02-15 15:45           ` Konrad Rzeszutek Wilk
2017-02-15 18:32             ` Oleksandr Andrushchenko
2017-02-15 21:33               ` Konrad Rzeszutek Wilk
2017-02-16  8:36                 ` Oleksandr Andrushchenko
2017-02-17 16:33                   ` Konrad Rzeszutek Wilk
2017-02-17 17:33                     ` Oleksandr Andrushchenko
2017-03-01 16:40                       ` Oleksandr Andrushchenko [this message]
2017-02-17 19:12                     ` Stefano Stabellini
2017-02-17 19:22                       ` Oleksandr Andrushchenko
2017-02-17 19:28                         ` Konrad Rzeszutek Wilk

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=7b47fa84-e7af-4608-c337-2f85686f87b6@gmail.com \
    --to=andr2000@gmail.com \
    --cc=al1img@gmail.com \
    --cc=andrii.anisov@gmail.com \
    --cc=joculator@gmail.com \
    --cc=konrad.wilk@oracle.com \
    --cc=oleksandr_andrushchenko@epam.com \
    --cc=oleksandr_grytsov@epam.com \
    --cc=olekstysh@gmail.com \
    --cc=sstabellini@kernel.org \
    --cc=stefano@aporeto.com \
    --cc=vlad.babchuk@gmail.com \
    --cc=xen-devel@lists.xenproject.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;
as well as URLs for NNTP newsgroup(s).