Generic Linux architectural discussions
 help / color / mirror / Atom feed
From: "Arnd Bergmann" <arnd@arndb.de>
To: "Jianmin Lv" <lvjianmin@loongson.cn>,
	"Xi Ruoyao" <xry111@xry111.site>,
	"WANG Xuerui" <kernel@xen0n.name>,
	"Huacai Chen" <chenhuacai@loongson.cn>,
	"Huacai Chen" <chenhuacai@kernel.org>
Cc: loongarch@lists.linux.dev,
	Linux-Arch <linux-arch@vger.kernel.org>,
	"Xuefeng Li" <lixuefeng@loongson.cn>, guoren <guoren@kernel.org>,
	"Jiaxun Yang" <jiaxun.yang@flygoat.com>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] LoongArch: Make -mstrict-align be configurable
Date: Mon, 06 Feb 2023 14:22:17 +0100	[thread overview]
Message-ID: <b9f274ad-591b-40b5-9441-a45fe67b5b8d@app.fastmail.com> (raw)
In-Reply-To: <3b17d229-bad4-e6a0-9055-c585dd5a62e4@loongson.cn>

On Mon, Feb 6, 2023, at 14:13, Jianmin Lv wrote:
> On 2023/2/6 下午7:18, Xi Ruoyao wrote:
>> On Mon, 2023-02-06 at 18:24 +0800, Jianmin Lv wrote:
>>> Hi, Xuerui
>>>
>>> I think the kernels produced with and without -mstrict-align have mainly
>>> following differences:
>>> - Diffirent size. I build two kernls (vmlinux), size of kernel with
>>> -mstrict-align is 26533376 bytes and size of kernel without
>>> -mstrict-align is 26123280 bytes.
>>> - Diffirent performance. For example, in kernel function jhash(), the
>>> assemble code slices with and without -mstrict-align are following:
>> 
>> But there are still questions remaining:
>> 
>> (1) Is the difference contributed by a bad code generation of GCC?  If
>> true, it's better to improve GCC before someone starts to build a distro
>> for LA264 as it would benefit the user space as well.
>> 
> AFAIK, GCC builds to produce unaligned-access-enabled target binary by 
> default (without -mstrict-align) for improving user space performance 
> (small size and runtime high performance), which is also based the fact 
> that the vast majority of LoongArch CPUs support unaligned-access.
>
>> (2) Is there some "big bad unaligned access loop" on a hot spot in the
>> kernel code?  If true, it may be better to just refactor the C code
>> because doing so will benefit all ports, not only LoongArch.  Otherwise,
>> it may be unworthy to optimize for some cold paths.
>> 
> Frankly, I'm not sure if there is this kind of hot code in kernel, I 
> just see the difference from different kernel size and different 
> assemble code slice. And I'm afraid that it may be difficult to judge 
> whether it is reasonable hot code or not if exists.

Just look for CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS, this will
show you code locations that use different implementations based on
whether the kernel should run on CPUs without unaligned access or
not.

      Arnd

  reply	other threads:[~2023-02-06 13:23 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-02  8:42 [PATCH] LoongArch: Make -mstrict-align be configurable Huacai Chen
2023-02-02  9:01 ` David Laight
2023-02-03  2:00   ` Huacai Chen
2023-02-03  8:46     ` David Laight
2023-02-06 10:28       ` Jianmin Lv
2023-02-07  5:24         ` WANG Xuerui
2023-02-07 10:32           ` Arnd Bergmann
2023-02-07 13:28             ` Jianmin Lv
2023-02-07 14:10               ` Arnd Bergmann
2023-02-08 11:17                 ` Huacai Chen
2023-02-02  9:46 ` Arnd Bergmann
2023-02-03  2:08   ` Huacai Chen
2023-02-06 10:33     ` Arnd Bergmann
2023-02-02 10:30 ` WANG Xuerui
2023-02-06 10:24   ` Jianmin Lv
2023-02-06 11:18     ` Xi Ruoyao
2023-02-06 13:13       ` Jianmin Lv
2023-02-06 13:22         ` Arnd Bergmann [this message]
2023-02-07  1:13           ` Jianmin Lv
2023-02-06 13:30         ` Xi Ruoyao
2023-02-07  1:27           ` Jianmin Lv

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=b9f274ad-591b-40b5-9441-a45fe67b5b8d@app.fastmail.com \
    --to=arnd@arndb.de \
    --cc=chenhuacai@kernel.org \
    --cc=chenhuacai@loongson.cn \
    --cc=guoren@kernel.org \
    --cc=jiaxun.yang@flygoat.com \
    --cc=kernel@xen0n.name \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lixuefeng@loongson.cn \
    --cc=loongarch@lists.linux.dev \
    --cc=lvjianmin@loongson.cn \
    --cc=xry111@xry111.site \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox