All of lore.kernel.org
 help / color / mirror / Atom feed
From: Julien Grall <julien.grall@arm.com>
To: "Jaggi, Manish" <Manish.Jaggi@cavium.com>,
	Andre Przywara <andre.przywara@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"Nair, Jayachandran" <Jayachandran.Nair@cavium.com>,
	Vijay Kilari <vijay.kilari@gmail.com>,
	"Kapoor, Prasun" <Prasun.Kapoor@cavium.com>
Subject: Re: [PATCH 09/28] ARM: GICv3 ITS: map device and LPIs to the ITS on physdev_op hypercall
Date: Tue, 31 Jan 2017 15:17:54 +0000	[thread overview]
Message-ID: <74d4169b-468c-3260-b7c1-3f055294b904@arm.com> (raw)
In-Reply-To: <15cd2249-ed90-3be7-dac0-96caca762016@caviumnetworks.com>



On 31/01/17 14:08, Jaggi, Manish wrote:
> Hi Julien,
>
> On 1/31/2017 7:16 PM, Julien Grall wrote:
>> On 31/01/17 13:19, Jaggi, Manish wrote:
>>> On 1/31/2017 6:13 PM, Julien Grall wrote:
>>>> On 31/01/17 10:29, Jaggi, Manish wrote:
>>>>>>
>>>>>> From: Xen-devel <xen-devel-bounces@lists.xen.org> on behalf of Andre
>>>>>> Przywara <andre.przywara@arm.com>
>>>>>> Sent: Tuesday, January 31, 2017 12:01 AM
>>>>>> To: Stefano Stabellini; Julien Grall
>>>>>> Cc: xen-devel@lists.xenproject.org; Vijay Kilari
>>>>>> Subject: [Xen-devel] [PATCH 09/28] ARM: GICv3 ITS: map device and
>>>>>> LPIs to the ITS on physdev_op hypercall
>>>>>>
>>>>> [snip]
>>>>>>
>>>>>>
>>>>>>  int do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>>>>>>  {
>>>>>> +    struct physdev_manage_pci manage;
>>>>>> +    u32 devid;
>>>>>> +    int ret;
>>>>>> +
>>>>>> +    switch (cmd)
>>>>>> +    {
>>>>>
>>>>> You might alos need to  PHYSDEVOP_pci_device_add hypercall also.
>>>>>
>>>>>> +        case PHYSDEVOP_manage_pci_add:
>>>>>> +        case PHYSDEVOP_manage_pci_remove:
>>>>>> +            if ( copy_from_guest(&manage, arg, 1) != 0 )
>>>>>> +                return -EFAULT;
>>>>>> +
>>>>>> +            devid = manage.bus << 8 | manage.devfn;
>>>>>> +            /* Allocate an ITS device table with space for 32 MSIs */
>>>>>> +            ret = gicv3_its_map_guest_device(hardware_domain,
>>>>>> devid, devid, 5,
>>>>>> +                                             cmd ==
>>>>>> PHYSDEVOP_manage_pci_add);
>>>>>
>>>>> Based on 4.9 kernel, is the deivce ID plain sBDF or it is
>>>>> returnedfrom of_msi_map_rid /  iort_msi_map_rid ?
>>>>> I believe there needs to be set this as requirement on the calle of
>>>>> hypercall.
>>>>
>>>> The requirement of the hypercall is already defined and cannot be
>>>> changed. So if it does not provide the correct information, then we
>>>> need to find another way to get the DeviceID.
>>>>
>>> Do you think sbdf and device ID are same ? If you recollect your
>>> comments last year sbdf != DeviceID.
>>> for this series it has to be passed correctly otherwise ITS would be programmed incorrectly.
>>> I suggest this series to include another way as well.
>>
>> Thank you sherlock, if you had read my e-mail entirely you would have noticed I never said sbdf == DeviceID and actually provided insight on the problem and suggest solutions.
>>
> If you please read 4 lines above I wrote sbdf != DeviceID.

I think there is a miscommunication problem here. By "my e-mail" I was 
referring to the e-mail on this thread 
(4a8e35dc-57e5-e493-9a9a-4a91bb8e1a2f@arm.com). On your e-mail you 
implied I was not aware of sbdf != DeviceID (see "Do you think sbdf and 
device ID are same").


>> I would recommend you to do the same in the future. It would help to get the code much faster in Xen.
>>
>>>
>>>> In case of ACPI, we should be able to get those informations from the
>>>> IORT as the segment number is defined in the firmware tables. But for
>>>> Device Tree, we would need DOM0 and Xen to agree on the segment number.
>>>>
>>> Is there any agreement hypercall used with this series ?
>>
>> From xen/include/public/physdev.h
>>
>> struct physdev_manage_pci {
>>     /* IN */
>>     uint8_t bus;
>>     uint8_t devfn;
>> };
>>
>> struct physdev_manage_pci_ext {
>>     /* IN */
>>     uint8_t bus;
>>     uint8_t devfn;
>>     unsigned is_extfn;
>>     unsigned is_virtfn;
>>     struct {
>>         uint8_t bus;
>>         uint8_t devfn;
>>     } physfn;
>> };
>>
>> Let me know how you could encode a DeviceID in those hypercalls.
>>
> If you please go back to your comment where you wrote "we need to find another way to get the DeviceID", I was referring that we should add that another way in this series so that correct DeviceID is programmed in ITS.

This is not the first time I am saying this, just saying "we should add 
that another way..." is not helpful. You should also provide some 
details on what you would do.

For now, you gave no feedbacks on my suggestions and I have no clue what 
you mean by "agreement hypercall".

Cheers,

-- 
Julien Grall

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

  reply	other threads:[~2017-01-31 15:17 UTC|newest]

Thread overview: 106+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-30 18:31 [PATCH 00/28] arm64: Dom0 ITS emulation Andre Przywara
2017-01-30 18:31 ` [PATCH 01/28] ARM: export __flush_dcache_area() Andre Przywara
2017-02-06 11:23   ` Julien Grall
2017-01-30 18:31 ` [PATCH 02/28] ARM: GICv3 ITS: parse and store ITS subnodes from hardware DT Andre Przywara
2017-02-06 12:39   ` Julien Grall
2017-02-16 17:44     ` Andre Przywara
2017-02-16 18:15       ` Julien Grall
2017-02-06 12:58   ` Julien Grall
2017-02-27 11:43     ` Andre Przywara
2017-02-27 12:51       ` Julien Grall
2017-01-30 18:31 ` [PATCH 03/28] ARM: GICv3: allocate LPI pending and property table Andre Przywara
2017-02-06 16:26   ` Julien Grall
2017-02-27 11:34     ` Andre Przywara
2017-02-27 12:48       ` Julien Grall
2017-02-14  0:47   ` Stefano Stabellini
2017-01-30 18:31 ` [PATCH 04/28] ARM: GICv3 ITS: allocate device and collection table Andre Przywara
2017-02-06 17:19   ` Julien Grall
2017-02-14  0:55     ` Stefano Stabellini
2017-02-06 17:36   ` Julien Grall
2017-02-06 17:43   ` Julien Grall
2017-03-23 18:06     ` Andre Przywara
2017-03-23 18:08       ` Julien Grall
2017-02-14  0:54   ` Stefano Stabellini
2017-02-15 18:31   ` Shanker Donthineni
2017-02-16 19:03   ` Shanker Donthineni
2017-02-24 19:29     ` Shanker Donthineni
2017-02-27 10:23       ` Andre Przywara
2017-01-30 18:31 ` [PATCH 05/28] ARM: GICv3 ITS: map ITS command buffer Andre Przywara
2017-02-06 17:43   ` Julien Grall
2017-02-14  0:59   ` Stefano Stabellini
2017-02-14 20:50     ` Julien Grall
2017-02-14 21:00       ` Stefano Stabellini
2017-01-30 18:31 ` [PATCH 06/28] ARM: GICv3 ITS: introduce ITS command handling Andre Przywara
2017-02-06 19:16   ` Julien Grall
2017-02-07 11:44     ` Julien Grall
2017-03-07 18:08     ` Andre Przywara
2017-03-08 15:28       ` Julien Grall
2017-03-08 16:16         ` Andre Przywara
2017-02-07 11:59   ` Julien Grall
2017-01-30 18:31 ` [PATCH 07/28] ARM: GICv3 ITS: introduce device mapping Andre Przywara
2017-02-07 14:05   ` Julien Grall
2017-02-15 16:30   ` Julien Grall
2017-02-22  7:06   ` Vijay Kilari
2017-02-24 19:37     ` Shanker Donthineni
2017-02-22 13:17   ` Julien Grall
2017-01-30 18:31 ` [PATCH 08/28] ARM: GICv3 ITS: introduce host LPI array Andre Przywara
2017-02-07 18:01   ` Julien Grall
2017-02-14 20:05   ` Stefano Stabellini
2017-01-30 18:31 ` [PATCH 09/28] ARM: GICv3 ITS: map device and LPIs to the ITS on physdev_op hypercall Andre Przywara
2017-01-31 10:29   ` Jaggi, Manish
2017-01-31 12:43     ` Julien Grall
2017-01-31 13:19       ` Jaggi, Manish
2017-01-31 13:46         ` Julien Grall
2017-01-31 14:08           ` Jaggi, Manish
2017-01-31 15:17             ` Julien Grall [this message]
2017-01-31 16:02               ` Jaggi, Manish
2017-01-31 16:18                 ` Julien Grall
2017-02-24 19:57                   ` Shanker Donthineni
2017-02-24 20:28                     ` Julien Grall
2017-02-27 17:20                     ` Andre Przywara
2017-02-28 18:29                       ` Julien Grall
2017-03-01 19:42                         ` Shanker Donthineni
2017-03-03 15:53                           ` Julien Grall
2017-01-31 13:28       ` Jaggi, Manish
2017-02-14 20:11   ` Stefano Stabellini
2017-01-30 18:31 ` [PATCH 10/28] ARM: GICv3: introduce separate pending_irq structs for LPIs Andre Przywara
2017-02-14 20:39   ` Stefano Stabellini
2017-02-15 17:06     ` Julien Grall
2017-02-15 17:03   ` Julien Grall
2017-01-30 18:31 ` [PATCH 11/28] ARM: GICv3: forward pending LPIs to guests Andre Przywara
2017-02-14 21:00   ` Stefano Stabellini
2017-02-15 17:18     ` Julien Grall
2017-02-15 21:25       ` Stefano Stabellini
2017-03-02 20:56         ` Julien Grall
2017-03-03  7:58           ` Jan Beulich
2017-03-03 14:53             ` Julien Grall
2017-02-15 17:30   ` Julien Grall
2017-01-30 18:31 ` [PATCH 12/28] ARM: GICv3: enable ITS and LPIs on the host Andre Przywara
2017-02-14 22:41   ` Stefano Stabellini
2017-02-15 17:35   ` Julien Grall
2017-01-30 18:31 ` [PATCH 13/28] ARM: vGICv3: handle virtual LPI pending and property tables Andre Przywara
2017-02-14 23:56   ` Stefano Stabellini
2017-02-15 18:44   ` Julien Grall
2017-01-30 18:31 ` [PATCH 14/28] ARM: vGICv3: Handle disabled LPIs Andre Przywara
2017-02-14 23:58   ` Stefano Stabellini
2017-01-30 18:31 ` [PATCH 15/28] ARM: vGICv3: introduce basic ITS emulation bits Andre Przywara
2017-02-15 20:06   ` Shanker Donthineni
2017-01-30 18:31 ` [PATCH 16/28] ARM: vITS: introduce translation table walks Andre Przywara
2017-01-30 18:31 ` [PATCH 17/28] ARM: vITS: handle CLEAR command Andre Przywara
2017-02-15  0:07   ` Stefano Stabellini
2017-01-30 18:31 ` [PATCH 18/28] ARM: vITS: handle INT command Andre Przywara
2017-01-30 18:31 ` [PATCH 19/28] ARM: vITS: handle MAPC command Andre Przywara
2017-01-30 18:31 ` [PATCH 20/28] ARM: vITS: handle MAPD command Andre Przywara
2017-02-15  0:17   ` Stefano Stabellini
2017-01-30 18:31 ` [PATCH 21/28] ARM: vITS: handle MAPTI command Andre Przywara
2017-01-30 18:31 ` [PATCH 22/28] ARM: vITS: handle MOVI command Andre Przywara
2017-01-30 18:31 ` [PATCH 23/28] ARM: vITS: handle DISCARD command Andre Przywara
2017-01-30 18:31 ` [PATCH 24/28] ARM: vITS: handle INV command Andre Przywara
2017-01-30 18:31 ` [PATCH 25/28] ARM: vITS: handle INVALL command Andre Przywara
2017-01-30 18:31 ` [PATCH 26/28] ARM: vITS: create and initialize virtual ITSes for Dom0 Andre Przywara
2017-01-30 18:31 ` [PATCH 27/28] ARM: vITS: create ITS subnodes for Dom0 DT Andre Przywara
2017-01-30 18:31 ` [PATCH 28/28] ARM: vGIC: advertising LPI support Andre Przywara
2017-02-13 13:53 ` [PATCH 00/28] arm64: Dom0 ITS emulation Vijay Kilari
2017-02-14 22:00   ` Stefano Stabellini
2017-02-15 15:59   ` Julien Grall
2017-02-15 17:55 ` Julien Grall

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=74d4169b-468c-3260-b7c1-3f055294b904@arm.com \
    --to=julien.grall@arm.com \
    --cc=Jayachandran.Nair@cavium.com \
    --cc=Manish.Jaggi@cavium.com \
    --cc=Prasun.Kapoor@cavium.com \
    --cc=andre.przywara@arm.com \
    --cc=sstabellini@kernel.org \
    --cc=vijay.kilari@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.