All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jan Beulich <jbeulich@suse.com>
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: "Romain Caritey" <Romain.Caritey@microchip.com>,
	"Alistair Francis" <alistair.francis@wdc.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>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 3/4] xen/riscv: allow Xen to use SSTC while hiding it from guests
Date: Thu, 2 Apr 2026 08:41:16 +0200	[thread overview]
Message-ID: <df6fb4f1-b420-4b5f-90e1-dea9069311bf@suse.com> (raw)
In-Reply-To: <ff0e2e7332d5b887d00ad10caf01952f90f5da5c.1774863161.git.oleksii.kurochko@gmail.com>

On 31.03.2026 21:04, Oleksii Kurochko wrote:
> @@ -495,6 +498,36 @@ void __init riscv_fill_hwcap(void)
>          panic("HW capabilities parsing failed: %s\n", failure_msg);
>      }
>  
> +    if ( csr_read_safe(CSR_STIMECMP, &tmp) )
> +    {
> +        printk("SSTC is detected but is supported only for Xen usage not for "
> +               "a guest\n");

Please don't wrap format strings. Them going slightly beyond 80 columns is okay.
Them going much beyond that is a good indication that you want to consider re-
wording. (Here e.g. "SSTC detected; supported for Xen use, but not for guests".)

I question though whether something like this needs logging.

> +        /*
> +         * As SSTC for guest isn't supported it is needed temprorary to:

Nit: temporary

> +         *
> +         * 1. Clear bit RISCV_ISA_EXT_sstc in riscv_isa as theoretuically it

Nit: theoretically

> +         *    could be that OpenSBI (it doesn't pass it now) or whatever ran
> +         *    before Xen will add SSTC to riscv,isa string. This bit clear
> +         *    won't allow guest to use SSTC extension as vtimer context
> +         *    switch and restore isn't ready for that.
> +         */
> +        __clear_bit(RISCV_ISA_EXT_sstc, riscv_isa);

Seeing your other series, shouldn't this instead be done without affecting
riscv_isa? The BUG_ON()s in vtimer.x therefore also look inappropriate.

> @@ -61,20 +73,7 @@ int reprogram_timer(s_time_t timeout)
>      if ( deadline <= now )
>          return 0;
>  
> -    /*
> -     * TODO: When the SSTC extension is supported, it would be preferable to
> -     *       use the supervisor timer registers directly here for better
> -     *       performance, since an SBI call and mode switch would no longer
> -     *       be required.
> -     *
> -     *       This would also reduce reliance on a specific SBI implementation.
> -     *       For example, it is not ideal to panic() if sbi_set_timer() returns
> -     *       a non-zero value. Currently it can return 0 or -ENOSUPP, and
> -     *       without SSTC we still need an implementation because only the
> -     *       M-mode timer is available, and it can only be programmed in
> -     *       M-mode.
> -     */
> -    if ( (rc = sbi_set_timer(deadline)) )
> +    if ( (rc = set_xen_timer(deadline)) )
>          panic("%s: timer wasn't set because: %d\n", __func__, rc);
>  
>      /* Enable timer interrupt */
> @@ -85,10 +84,17 @@ int reprogram_timer(s_time_t timeout)
>  
>  void __init preinit_xen_time(void)
>  {
> +    unsigned long tmp;
> +
>      if ( acpi_disabled )
>          preinit_dt_xen_time();
>      else
>          panic("%s: ACPI isn't supported\n", __func__);
>  
>      boot_clock_cycles = get_cycles();
> +
> +    if ( csr_read_safe(CSR_STIMECMP, &tmp) )
> +        set_xen_timer = sstc_set_xen_timer;
> +    else
> +        set_xen_timer = sbi_set_timer;
>  }

Doesn't all of this together eliminate the need for sbi_set_timer as a
separate global variable?

Jan


  reply	other threads:[~2026-04-02  6:41 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-31 19:04 [PATCH v2 0/4] RISCV: Intrdouce SSTC support in Xen Oleksii Kurochko
2026-03-31 19:04 ` [PATCH v2 1/4] xen/riscv: add exception table support Oleksii Kurochko
2026-04-02  6:24   ` Jan Beulich
2026-04-08  9:29     ` Oleksii Kurochko
2026-04-08  9:45       ` Andrew Cooper
2026-03-31 19:04 ` [PATCH v2 2/4] xen/riscv: add csr_read_safe() helper Oleksii Kurochko
2026-04-02  6:30   ` Jan Beulich
2026-04-08  9:38     ` Oleksii Kurochko
2026-03-31 19:04 ` [PATCH v2 3/4] xen/riscv: allow Xen to use SSTC while hiding it from guests Oleksii Kurochko
2026-04-02  6:41   ` Jan Beulich [this message]
2026-04-08 10:58     ` Oleksii Kurochko
2026-04-08 11:25       ` Jan Beulich
2026-04-08 11:52         ` Oleksii Kurochko
2026-03-31 19:04 ` [PATCH v2 4/4] xen/riscv: init_csr_masks()-related improvements Oleksii Kurochko
2026-04-01  6:19   ` Jan Beulich
2026-04-01 13:39     ` Oleksii Kurochko

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=df6fb4f1-b420-4b5f-90e1-dea9069311bf@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=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.