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

Re: [PATCH] Eclair: scan the last xen-syms linking pass on Arm


  • To: Jan Beulich <jbeulich@xxxxxxxx>, Nicola Vetrini <nicola.vetrini@xxxxxxxxxxx>
  • From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@xxxxxxxx>
  • Date: Wed, 7 Oct 2026 17:09:24 +0000
  • Accept-language: en-US, uk-UA, ru-RU
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com; dkim=pass header.d=epam.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=w4p6tVk0AAfZ2qiQHiUWiyFlFnENM70hfHdz8Z4lSV4=; b=Uu/MOgj1pcBIGN+4Mgl7Ud7alAmDQUzWwx8gwAz1mRcESTAPQ+2vc96p8cft5YcAmM3vv0rFgGA20NqTZgdXErYT8OzZlLgPgRuAosceUviaKLjBwmRKGOz1uzeQdhF+DO1qH+CAvRRZSt9s3RJSEdyOVcXschTsMUlyFsNfxW94xS3ig5col5JWjhhY8EGaPPLns+IVQOrCrJ4jMklawECY5cZSe8PdkZ9fobtQtwTPiFrKmSar1jtU+wdIV070e5E8VMEXub+9FE4IKypc0GHs1iGJRm5vk0/LhP8+LYvPa5PxK1UvyaaGTgEL/F9l+K9qqgR3IFb26qsFswGZSw==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jxa5SaopmgIf50+28UcDQqo5veFlBzfIpYVVbxUY9aF8+jtpZTDd57ll2E6SkARl8QoW45IQdlG483nmfTuliyB0xE02ub6rnrtttWugtdbBHOeWXV3/MY8Tu3lDTOf7kxboiDi813JvMO0neVzlWw0J2cn2YyEyGJCDQ/QCVnT6Q/SoDKkh0441TzgUtBF5lP9RSaI2QsxqTL/bVjCfABNMjG/kA0kpy2stozgxfL0vJ2ap7CDxP8uikp4ez5ZPf/qyHHfFltNQu9SdAN3XF5CCq+y77WH1eFym9N9wqn7oJ9J+VsGRJclTfYxJAsEQDKKwv4svRUhLCVMGWaPO2Q==
  • Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
  • Authentication-results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=epam.com;
  • Cc: Doug Goldstein <cardoe@xxxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Wed, 07 Oct 2026 17:09:36 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AQHdVZ47rgN8qfc/LUyZracn12XLU7bwnI6AgAASYQCAAOP3gIAAL16AgACPsoA=
  • Thread-topic: [PATCH] Eclair: scan the last xen-syms linking pass on Arm


On 10/7/26 11:35, Jan Beulich wrote:
> On 07.10.2026 07:45, Nicola Vetrini wrote:
>> On 2026-10-06 18:09, Dmytro Prokopchuk1 wrote:
>>> On 10/6/26 18:03, Jan Beulich wrote:
>>>> On 06.10.2026 16:23, Dmytro Prokopchuk1 wrote:
>>>>> Hiding .xen-syms.[013] assumed the almost-final image is always pass
>>>>> 2.
>>>>> On x86 LAST_LINKING_PASS is 2, so .xen-syms.2 stays visible. On Arm
>>>>> LAST_LINKING_PASS is 3 and the final image is .xen-syms.3, which was
>>>>> hidden. Pass 2 is usually only a symlink, so Eclair saw no program
>>>>> link
>>>>> and reported every translation unit as unreachable.
>>>>
>>>> When I did that work, rule 2.1 ended up clean for both ARM64-*
>>>> analysis
>>>> jobs (iirc). Upon re-checking I now see that ARM64-amd has 177
>>>> violations
>>>> (apparently that's what you talk about above), but ARM64-allcode has
>>>> none
>>>> (https://gitlab.com/xen-project/hardware/xen/-/pipelines/2916569232).
>>>>
>>>>> Stop hiding pass 3. Passes 0 and 1 remain excluded.
>>>>
>>>> This will cause scanning of both passes 2 and 3, i.e. consume more
>>>> time
>>>> and report duplicate violations when both passes are real linking
>>>> steps.
>>>> I think we want to be smarter than that, to really scan exactly once.
>>>> I
>>>> don't have a good idea just yet how to achieve that, though (and I was
>>>> wondering already when putting together the original patch).
>>>>
>>>> Jan
>>>
>>> Hmm
>>>
>>> At the moment
>>> (https://gitlab.com/xen-project/hardware/xen/-/pipelines/2917375773) I
>>> see ARM64 R2.1 violations:
>>> - 177 in AMD
>>> - 249 in allcode
>>>
>>> Anyway, we can have if-else like this (copied from
>>> automation/eclair_analysis/ECLAIR/tagging.ecl):
>>>
>>> -setq=target,getenv("XEN_TARGET_ARCH")
>>> if(string_equal(target,"x86_64"),
>>>       file_tag+({"xen_syms_tmp", "^xen/\\.xen-syms\\.[013]$"}),
>>>       if(string_equal(target,"arm64"),
>>>           file_tag+({"xen_syms_tmp", "^xen/\\.xen-syms\\.[012]$"})
>>>       )
>>> )
>>>
>>> ^^^ test pipeline is here:
>>> https://gitlab.com/xen-project/people/dimaprkp4k/xen/-/pipelines/2918571749
>>>
>>> BR, Dmytro.
>>
>> In theory we could even generate a configuration file on the fly just
>> before invoking make. See e.g. [1] and [2]. In this way, we can
>> determine programmatically which is the linking step to consider, since
>> the logic involves some conditionals in the Makefile rules.
>
> Hmm, yes, that looks promising.
>
>> In any case
>> intercepting one more command that is just a symlink does not incur in a
>> big cost: only if the intercepted step is another linking command ~5
>> more minutes are needed.
>
> Yet that's an issue, at least as long as the analysis jobs generally
> determine pipeline overall latency. Plus with code size (almost) only ever
> growing, that time is also only going to (almost) ever grow.
>
> Jan
>
>> [1]
>> https://gitlab.com/xen-project/hardware/xen/-/blob/staging/automation/eclair_analysis/ECLAIR/generate_ecl.sh?ref_type=heads
>> [2]
>> https://gitlab.com/xen-project/hardware/xen/-/blob/staging/automation/eclair_analysis/ECLAIR/generate-linker-symbols.sh?ref_type=heads
>>
>>
>

Jan, Nicola

Thank you for the review.
Sending V2.

BR, Dmytro.

 


Rackspace

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