From: Jan Beulich <jbeulich@suse.com>
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: "Alistair Francis" <alistair.francis@wdc.com>,
"Bob Eshleman" <bobbyeshleman@gmail.com>,
"Connor Davis" <connojdavis@gmail.com>,
"Andrew Cooper" <andrew.cooper3@citrix.com>,
"Anthony PERARD" <anthony.perard@vates.tech>,
"Michal Orzel" <michal.orzel@amd.com>,
"Julien Grall" <julien@xen.org>,
"Roger Pau Monné" <roger.pau@citrix.com>,
"Stefano Stabellini" <sstabellini@kernel.org>,
"Romain Caritey" <Romain.Caritey@microchip.com>,
xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 3/4] xen/riscv: implement basic aplic_preinit()
Date: Thu, 27 Mar 2025 08:39:07 +0100 [thread overview]
Message-ID: <b0af1e38-9c27-469e-8bc9-321d3c49dd2c@suse.com> (raw)
In-Reply-To: <242f04d2-50b6-4ce1-8710-6dae2f940b9e@gmail.com>
On 26.03.2025 17:49, Oleksii Kurochko wrote:
> On 3/26/25 4:19 PM, Jan Beulich wrote:
>> On 25.03.2025 18:36, Oleksii Kurochko wrote:
>>> Introduce preinitialization stuff for the RISC-V Advanced Platform-Level
>>> Interrupt Controller (APLIC) in Xen:
>>> - Implementing the APLIC pre-initialization function (`aplic_preinit()`),
>>> ensuring that only one APLIC instance is supported in S mode.
>>> - Initialize APLIC's correspoinding DT node.
>>> - Declaring the DT device match table for APLIC.
>>> - Setting `aplic_info.hw_version` during its declaration.
>>> - Declaring an APLIC device.
>>>
>>> Since Microchip originally developed aplic.c [1], an internal discussion
>>> with them led to the decision to use the MIT license instead of the default
>>> GPL-2.0-only.
>>>
>>> [1]https://gitlab.com/xen-project/people/olkur/xen/-/commit/7cfb4bd4748ca268142497ac5c327d2766fb342d
>>>
>>> Signed-off-by: Romain Caritey<Romain.Caritey@microchip.com>
>>> Signed-off-by: Oleksii Kurochko<oleksii.kurochko@gmail.com>
>> You recall that From: != 1st S-o-b is unusual, and wants some explanation.
>> IOW it's unclear who the original author of this patch is.
>
> I'm not 100% sure who should be the author. Such patch doesn't exist before but I took the changes
> based on the changes mentioned in commit message as [1].
>
> If you think that the author should be Romain, I am okay with that.
I can't sensibly form an opinion here. This needs settling between him and you.
From your reply I'm not even convinced his S-o-b is legitimately there then.
You may want to use another, less standard tag in such a case (like the
Co-developed-by: that I've seen in use here and there) to still give credit to
him.
>>> --- /dev/null
>>> +++ b/xen/arch/riscv/aplic.c
>>> @@ -0,0 +1,49 @@
>>> +/* SPDX-License-Identifier: MIT */
>>> +
>>> +/*
>>> + * xen/arch/riscv/aplic.c
>>> + *
>>> + * RISC-V Advanced Platform-Level Interrupt Controller support
>>> + *
>>> + * Copyright (c) 2023-2024 Microchip.
>>> + * Copyright (c) 2024-2025 Vates
>>> + */
>>> +
>>> +#include <xen/errno.h>
>>> +#include <xen/init.h>
>>> +#include <xen/types.h>
>>> +
>>> +#include <asm/device.h>
>>> +#include <asm/intc.h>
>>> +
>>> +static struct intc_info aplic_info = {
>>> + .hw_version = INTC_APLIC
>>> +};
>> Is this going to be written to (much) post-init? IOW - __read_mostly or
>> even __ro_after_init?
>
> I think that __read_mostly would be better because intc_info structure in the future
> will contain member "void *private". And in `private` it can be a data which can
> be changed.
You mean the pointer can change? Or merely what it points to, i.e. ...
> For example, `private` can contain an aplic_priv structure:
> struct aplic_priv {
> /* number of irqs */
> uint32_t nr_irqs;
>
> /* base physical address and size */
> paddr_t paddr_start;
> paddr_t paddr_end;
> uint64_t size;
>
> /* registers */
> struct aplic_regs *regs;
>
> /* imsic configuration */
> const struct imsic_config *imsic_cfg;
> };
>
> and regs from aplic_priv structure can be changed in runtime.
... the contents of such a struct? In this latter case the struct instance
here can still be __ro_after_init as long as the pointer is set from an
__init function.
Jan
next prev parent reply other threads:[~2025-03-27 7:39 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-25 17:36 [PATCH v2 1/4] xen/riscv: introduce preinit_xen_time() Oleksii Kurochko
2025-03-25 17:36 ` [PATCH v2 2/4] automation: select APLIC and IMSIC to handle both wired interrupts and MSIs Oleksii Kurochko
2025-03-25 17:36 ` [PATCH v2 3/4] xen/riscv: implement basic aplic_preinit() Oleksii Kurochko
2025-03-26 15:19 ` Jan Beulich
2025-03-26 16:49 ` Oleksii Kurochko
2025-03-27 7:39 ` Jan Beulich [this message]
2025-03-27 9:50 ` Oleksii Kurochko
2025-03-25 17:37 ` [PATCH v2 4/4] xen/riscv: introduce intc_preinit() Oleksii Kurochko
2025-03-26 15:20 ` Jan Beulich
2025-03-26 15:13 ` [PATCH v2 1/4] xen/riscv: introduce preinit_xen_time() Jan Beulich
2025-03-26 19:49 ` Oleksii Kurochko
2025-03-27 7:42 ` Jan Beulich
2025-03-27 11:48 ` Oleksii Kurochko
2025-03-27 12:23 ` Jan Beulich
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=b0af1e38-9c27-469e-8bc9-321d3c49dd2c@suse.com \
--to=jbeulich@suse.com \
--cc=Romain.Caritey@microchip.com \
--cc=alistair.francis@wdc.com \
--cc=andrew.cooper3@citrix.com \
--cc=anthony.perard@vates.tech \
--cc=bobbyeshleman@gmail.com \
--cc=connojdavis@gmail.com \
--cc=julien@xen.org \
--cc=michal.orzel@amd.com \
--cc=oleksii.kurochko@gmail.com \
--cc=roger.pau@citrix.com \
--cc=sstabellini@kernel.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.