From: Jan Beulich <jbeulich@suse.com>
To: Julien Grall <julien@xen.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
George Dunlap <george.dunlap@citrix.com>,
Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
xen-devel@lists.xenproject.org,
Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH v1 04/29] xen/asm-generic: introduce stub header device.h
Date: Thu, 19 Oct 2023 13:14:46 +0200 [thread overview]
Message-ID: <04fe316e-bc4f-0df8-7771-5be7ca878297@suse.com> (raw)
In-Reply-To: <54ac0161-7302-4190-9c6e-273caa652058@xen.org>
On 19.10.2023 13:07, Julien Grall wrote:
>
>
> On 19/10/2023 12:01, Jan Beulich wrote:
>> On 19.10.2023 12:57, Julien Grall wrote:
>>> On 19/10/2023 11:53, Jan Beulich wrote:
>>>> On 19.10.2023 12:42, Julien Grall wrote:
>>>>> On 19/10/2023 10:14, Jan Beulich wrote:
>>>>>> On 14.09.2023 16:56, Oleksii Kurochko wrote:
>>>>>>> --- /dev/null
>>>>>>> +++ b/xen/include/asm-generic/device.h
>>>>>>> @@ -0,0 +1,65 @@
>>>>>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>>>>>> +#ifndef __ASM_GENERIC_DEVICE_H__
>>>>>>> +#define __ASM_GENERIC_DEVICE_H__
>>>>>>> +
>>>>>>> +struct dt_device_node;
>>>>>>> +
>>>>>>> +enum device_type
>>>>>>> +{
>>>>>>> + DEV_DT,
>>>>>>> + DEV_PCI,
>>>>>>> +};
>>>>>>
>>>>>> Are both of these really generic?
>>>>>
>>>>> I think can be re-used for RISC-V to have an abstract view a device.
>>>>> This is for instance used in the IOMMU code where both PCI and platform
>>>>> (here called DT) can be assigned to a domain. The driver will need to
>>>>> know the difference, but the common layer doesn't need to.
>>>>
>>>> Question to me is whether DT and PCI can be considered "common", which
>>>> is a prereq for being used here.
>>>
>>> I think it can. See more below.
>>>
>>>>
>>>>>>> +struct device {
>>>>>>> + enum device_type type;
>>>>>>> +#ifdef CONFIG_HAS_DEVICE_TREE
>>>>>>> + struct dt_device_node *of_node; /* Used by drivers imported from Linux */
>>>>>>> +#endif
>>>>>>> +};
>>>>>>> +
>>>>>>> +enum device_class
>>>>>>> +{
>>>>>>> + DEVICE_SERIAL,
>>>>>>> + DEVICE_IOMMU,
>>>>>>> + DEVICE_GIC,
>>>>>>
>>>>>> This one certainly is Arm-specific.
>>>>>
>>>>> This could be renamed to DEVICE_IC (or INTERRUPT_CONTROLLER)
>>>>>
>>>>>>
>>>>>>> + DEVICE_PCI_HOSTBRIDGE,
>>>>>>
>>>>>> And this one's PCI-specific.
>>>>>
>>>>> Are you suggesting to #ifdef it? If so, I don't exactly see the value here.
>>>>
>>>> What to do with it is secondary to me. I was questioning its presence here.
>>>>
>>>>>> Overall same question as before: Are you expecting that RISC-V is going to
>>>>>> get away without a customized header? I wouldn't think so.
>>>>>
>>>>> I think it can be useful. Most likely you will have multiple drivers for
>>>>> a class and you may want to initialize certain device class early than
>>>>> others. See how it is used in device_init().
>>>>
>>>> I'm afraid I don't see how your reply relates to the question of such a
>>>> fallback header being sensible to have, or whether instead RISC-V will
>>>> need its own private header anyway.
>>>
>>> My point is that RISC-V will most likely duplicate what Arm did (they
>>> are already copying the dom0less code). So the header would end up to be
>>> duplicated. This is not ideal and therefore we want to share the header.
>>>
>>> I don't particularly care whether it lives in asm-generic or somewhere.
>>> I just want to avoid the duplication.
>>
>> Avoiding duplication is one goal, which I certainly appreciate. The header
>> as presented here is, however, only a subset of Arm's if I'm not mistaken.
>> If moving all of Arm's code here, I then wonder whether that really can
>> count as "generic".
>
> From previous discussion, I recalled that we seemed to agree that if
> applies for most the architecture, then it should be considered common.
Hmm, not my recollection - a certain amount of "does this make sense from
an abstract perspective" should also be applied.
>> Avoiding duplication could e.g. be achieved by making RISC-V symlink Arm's
>> header.
>
> Ewwwwww. Removing the fact I dislike it, I can see some issues with this
> approach in term of review. Who is responsible to review for any changes
> here? Surely, we don't only want to the Arm folks to review.
That could be achieved by an F: entry in the RISC-V section of ./MAINTAINERS.
Jan
next prev parent reply other threads:[~2023-10-19 11:15 UTC|newest]
Thread overview: 112+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-14 14:56 [PATCH v1 00/29] Introduce stub headers necessary for full Xen build Oleksii Kurochko
2023-09-14 14:56 ` [PATCH v1 01/29] xen/asm-generic: introduce stub header spinlock.h Oleksii Kurochko
2023-09-14 15:35 ` Jan Beulich
2023-09-18 8:43 ` Oleksii
2023-09-14 14:56 ` [PATCH v1 02/29] xen/asm-generic: introduce stub header paging.h Oleksii Kurochko
2023-10-19 9:05 ` Jan Beulich
2023-10-19 10:35 ` Julien Grall
2023-10-19 10:49 ` Jan Beulich
2023-10-23 9:35 ` Oleksii
2023-10-23 10:15 ` Jan Beulich
2023-10-23 9:40 ` Oleksii
2023-10-23 10:29 ` Jan Beulich
2023-09-14 14:56 ` [PATCH v1 03/29] xen/asm-generic: introduce stub header cpufeature.h Oleksii Kurochko
2023-10-19 9:11 ` Jan Beulich
2023-10-23 9:49 ` Oleksii
2023-09-14 14:56 ` [PATCH v1 04/29] xen/asm-generic: introduce stub header device.h Oleksii Kurochko
2023-10-19 9:14 ` Jan Beulich
2023-10-19 10:42 ` Julien Grall
2023-10-19 10:53 ` Jan Beulich
2023-10-19 10:57 ` Julien Grall
2023-10-19 11:01 ` Jan Beulich
2023-10-19 11:07 ` Julien Grall
2023-10-19 11:14 ` Jan Beulich [this message]
2023-10-19 11:27 ` Julien Grall
2023-10-19 11:41 ` Jan Beulich
2023-10-19 12:12 ` Julien Grall
2023-10-23 10:17 ` Oleksii
2023-10-23 10:33 ` Jan Beulich
2023-10-24 13:01 ` Julien Grall
2023-10-23 10:12 ` Oleksii
2023-10-23 10:35 ` Jan Beulich
2023-10-25 8:23 ` Oleksii
2023-09-14 14:56 ` [PATCH v1 05/29] xen/asm-generic: introduce stub header event.h Oleksii Kurochko
2023-10-19 9:18 ` Jan Beulich
2023-10-23 10:23 ` Oleksii
2023-10-23 10:40 ` Jan Beulich
2023-09-14 14:56 ` [PATCH v1 06/29] xen/asm-generic: introduce stub header grant_table.h Oleksii Kurochko
2023-10-19 9:19 ` Jan Beulich
2023-10-23 10:32 ` Oleksii
2023-10-23 10:45 ` Jan Beulich
2023-09-14 14:56 ` [PATCH v1 07/29] xen/asm-generic: introduce stub header guest_atomics.h Oleksii Kurochko
2023-09-14 14:56 ` [PATCH v1 08/29] xen/asm-generic: introduce stub hypercall.h Oleksii Kurochko
2023-10-19 9:24 ` Jan Beulich
2023-10-23 10:34 ` Oleksii
2023-09-14 14:56 ` [PATCH v1 09/29] xen/asm-generic: introduce stub header iocap.h Oleksii Kurochko
2023-10-19 9:25 ` Jan Beulich
2023-10-23 10:37 ` Oleksii
2023-09-14 14:56 ` [PATCH v1 10/29] xen/asm-generic: introduce stub header iommu.h Oleksii Kurochko
2023-10-19 9:44 ` Jan Beulich
2023-10-23 10:43 ` Oleksii
2023-10-23 10:47 ` Jan Beulich
2023-10-24 12:46 ` Oleksii
2023-09-14 14:56 ` [PATCH v1 11/29] xen/asm-generic: introduce stub header mem_access.h Oleksii Kurochko
2023-10-19 9:51 ` Jan Beulich
2023-10-23 10:45 ` Oleksii
2023-09-14 14:56 ` [PATCH v1 12/29] xen/asm-generic: introduce stub header pci.h Oleksii Kurochko
2023-10-19 9:55 ` Jan Beulich
2023-10-23 10:50 ` Oleksii
2023-10-23 11:58 ` Jan Beulich
2023-10-24 12:38 ` Oleksii
2023-10-30 16:34 ` Oleksii
2023-10-30 16:43 ` Jan Beulich
2023-10-31 12:44 ` Oleksii
2023-09-14 14:56 ` [PATCH v1 13/29] xen/asm-generic: introduce stub header random.h Oleksii Kurochko
2023-09-14 14:56 ` [PATCH v1 14/29] xen/asm-generic: introduce stub header setup.h Oleksii Kurochko
2023-09-14 14:56 ` [PATCH v1 15/29] xen/asm-generic: introduce stub header xenoprof.h Oleksii Kurochko
2023-10-19 10:09 ` Jan Beulich
2023-10-23 11:17 ` Oleksii
2023-10-23 12:00 ` Jan Beulich
2023-09-14 14:56 ` [PATCH v1 16/29] xen/asm-generic: introduce stub header flushtlb.h Oleksii Kurochko
2023-09-15 5:15 ` Jiamei Xie
2023-09-18 8:44 ` Oleksii
2023-09-14 14:56 ` [PATCH v1 17/29] xen/asm-generic: introduce stub header percpu.h Oleksii Kurochko
2023-10-19 10:39 ` Jan Beulich
2023-10-23 11:17 ` Oleksii
2023-09-14 14:56 ` [PATCH v1 18/29] xen/asm-generic: introduce stub header smp.h Oleksii Kurochko
2023-10-19 10:58 ` Jan Beulich
2023-10-23 11:28 ` Oleksii
2023-09-14 14:56 ` [PATCH v1 19/29] xen/asm-generic: introduce stub header hardirq.h Oleksii Kurochko
2023-10-19 11:04 ` Jan Beulich
2023-10-23 11:29 ` Oleksii
2023-09-14 14:56 ` [PATCH v1 20/29] xen/asm-generic: introduce stub header div64.h Oleksii Kurochko
2023-10-19 11:12 ` Jan Beulich
2023-10-23 11:32 ` Oleksii
2023-09-14 14:56 ` [PATCH v1 21/29] xen/asm-generic: introduce stub header altp2m.h Oleksii Kurochko
2023-10-19 11:27 ` Jan Beulich
2023-10-23 11:34 ` Oleksii
2023-09-14 14:56 ` [PATCH v1 22/29] xen/asm-generic: introduce stub header delay.h Oleksii Kurochko
2023-10-19 11:30 ` Jan Beulich
2023-10-23 11:35 ` Oleksii
2023-10-31 14:30 ` Oleksii
2023-09-14 14:56 ` [PATCH v1 23/29] xen/asm-generic: introduce stub header domain.h Oleksii Kurochko
2023-09-14 14:56 ` [PATCH v1 24/29] xen/asm-generic: introduce stub header guest_access.h Oleksii Kurochko
2023-09-14 14:56 ` [PATCH v1 25/29] xen/asm-generic: introduce stub header irq.h Oleksii Kurochko
2023-10-19 11:34 ` Jan Beulich
2023-09-14 14:56 ` [PATCH v1 26/29] xen/asm-generic: introduce stub header monitor.h Oleksii Kurochko
2023-10-19 11:35 ` Jan Beulich
2023-10-23 11:37 ` Oleksii
2023-09-14 14:56 ` [PATCH v1 27/29] xen/asm-generic: introduce stub header numa.h Oleksii Kurochko
2023-10-19 11:45 ` Jan Beulich
2023-09-14 14:56 ` [PATCH v1 28/29] xen/asm-generic: introduce stub header p2m.h Oleksii Kurochko
2023-09-14 14:56 ` [PATCH v1 29/29] xen/asm-generic: introduce stub header softirq.h Oleksii Kurochko
2023-09-14 15:08 ` [PATCH v1 00/29] Introduce stub headers necessary for full Xen build Jan Beulich
2023-09-18 8:51 ` Oleksii
2023-09-18 8:53 ` Oleksii
2023-09-18 9:29 ` Jan Beulich
2023-09-18 9:32 ` Julien Grall
2023-09-18 9:34 ` Jan Beulich
2023-09-18 12:05 ` Oleksii
2023-09-18 12:38 ` Jan Beulich
2023-09-22 6:00 ` Oleksii
2023-10-23 9:42 ` Oleksii
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=04fe316e-bc4f-0df8-7771-5be7ca878297@suse.com \
--to=jbeulich@suse.com \
--cc=andrew.cooper3@citrix.com \
--cc=george.dunlap@citrix.com \
--cc=julien@xen.org \
--cc=oleksii.kurochko@gmail.com \
--cc=sstabellini@kernel.org \
--cc=wl@xen.org \
--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.