[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 0/2] xen/common: llc-coloring parser fixes


  • To: Jan Beulich <jbeulich@xxxxxxxx>
  • From: Mykola Kvach <xakep.amatop@xxxxxxxxx>
  • Date: Mon, 18 May 2026 10:01:51 +0300
  • Arc-authentication-results: i=1; mx.google.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=3JCLiVjrYoxp8pn/kEH3Tc+0tuKlpKYXcQZg2b2QSAQ=; fh=m+LyBnxXZUS5is0QhmwZhMCJ+Zjiv6ewBPbyK6zvFHc=; b=WijZKnrONpvMyJHh+Ez+cpn7eLZRwC5KQyOsQ4+S+ICbS1jnIVrCKOw6vZ3uemqEak ZFw6e9K3PaiUoZuLbjL3OQDzbiGMKJXJ9hLF59CkSeaNkX1juASmJGJWmgZ111X0TPIi qEJu+qjYPowbuvzGyQAARD96+VzmY4sjvfAVkzBqmggsapm7SHI3MhsL2rp68+pB6miU CDgBOb0LajPVNcHShMM35Neka5dBXwXAm2W3OY7iKGwNulHOR2oOfLE9qolAp5QpBZxI Lkf+kDNi1szGhIlcaWiXnglfONPYdgSTqcQxMQTWtn3/Q7BmncS8CeIuOnPU5H90uHzA IUnQ==; darn=lists.xenproject.org
  • Arc-seal: i=1; a=rsa-sha256; t=1779087723; cv=none; d=google.com; s=arc-20240605; b=bO1NMkOr2DgIas/e7Eqg/hPYoHOXZrLEAhAAsON/mQoSH+6u/55/NNEmXlJkKC/l5l KrPHtRIUjxCxX5o92ayC66gVEAJV9ipxVE5NdeELKvUct7HFO0f3dBB3yMOjoUj//TgQ O4oxYz8l0AKsJYwcA4C0l4MAkvHrRLPgsugUwJhZ20vGwM7Mu8Ewi1aJGeyVtmrwdEmi wvVL06wMF/QeMZoF4y9RLYVO789Ls6qVYbNmWUdSHSOUa3Yzym2EVdrat4ailnnuo7my N0sVpN7ESvzC3RVYnXgWknARm+Qyov8bgjciUSKuxHTMU+7Q1ot/6pgdYJZm/m/S1IfE B2IA==
  • Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
  • Cc: Mykola Kvach <mykola_kvach@xxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Anthony PERARD <anthony.perard@xxxxxxxxxx>, Michal Orzel <michal.orzel@xxxxxxx>, Julien Grall <julien@xxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx, Carlo Nonato <carlo.nonato@xxxxxxxxxxxxxxx>, Marco Solieri <marco.solieri@xxxxxxxxxxxxxxx>
  • Delivery-date: Mon, 18 May 2026 07:02:12 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On Mon, May 18, 2026 at 9:52 AM Jan Beulich <jbeulich@xxxxxxxx> wrote:
>
> On 18.05.2026 08:42, Mykola Kvach wrote:
> > On Mon, May 18, 2026 at 9:20 AM Jan Beulich <jbeulich@xxxxxxxx> wrote:
> >> On 16.05.2026 17:03, Mykola Kvach wrote:
> >>> This small series fixes two issues in parse_color_config().
> >>>
> >>> The first patch makes parse failures leave the caller-visible color count
> >>> at zero.  This prevents a rejected command-line value from leaving a
> >>> partially parsed configuration behind for later init paths to consume.
> >>>
> >>> The second patch rejects empty color tokens.  Previously, delimiters in
> >>> places where a color value was expected could be interpreted as color 0,
> >>> because simple_strtoul() returns zero without advancing the input pointer.
> >>> The patch checks that each parsed color value consumed input.  It also
> >>> adds the missing newline to the DT color parsing error message.
> >>>
> >>> Mykola Kvach (2):
> >>>   xen/common: llc-coloring: clear color count on parse failure
> >>>   xen/common: llc-coloring: reject empty color tokens
> >>
> >> For both of these, a question which isn't even considered in the reasoning
> >> is whether the present behavior may be intentional. Especially for the 2nd
> >> ISTR Stefano(?) not so long ago indicating that the behavior is indeed
> >> intended to be this way. That may have been somewhere on Matrix rather than
> >> on the list, though.
> >
> > Thank you for pointing this out.
> >
> > For the first patch, my reasoning was that returning an error while
> > leaving a partially parsed caller-visible color count behind looks
> > surprising. If the value is rejected, I think later init paths should
> > not be able to consume the partially parsed state.
> >
> > For the second patch, my reasoning was that the current behavior looks
> > accidental rather than an intentional extension of the syntax.
>
> That was my impression as well, hence why I had raised the question back
> then.
>
> > The parser comment says:
> >
> > COLOR_CONFIGURATION ::= COLOR | RANGE,...,COLOR | RANGE
> > RANGE ::= COLOR-COLOR
> >
> > The user guide also describes this as a comma-separated list of colors
> > or ranges, with ranges written as hyphen-separated inclusive intervals.
> > I don't see an empty-token production there.
>
> What you quote is insufficient to determine: COLOR may be allowed to be
> <nothing>. Iirc the reasoning went in particular towards a range with
> merely the upper end specified being something (halfway) meaningful.

Right, I see your point.

The grammar does not define COLOR explicitly, so it does not by itself
prove that an empty token is invalid. I was implicitly reading COLOR as
a numeric color value, partly because all examples seem to use numeric
values, but I agree that this is not stated there.

If this behavior is intentional, then I agree the second patch should
not go in as-is.

Best regards,
Mykola



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.