All of lore.kernel.org
 help / color / mirror / Atom feed
From: Florian Fainelli <f.fainelli@gmail.com>
To: Qais Yousef <qais.yousef@arm.com>,
	Alexander Sverdlin <alexander.sverdlin@nokia.com>
Cc: Steven Rostedt <rostedt@goodmis.org>,
	Ingo Molnar <mingo@redhat.com>,
	Russell King <linux@armlinux.org.uk>,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	Ard Biesheuvel <ard.biesheuvel@linaro.org>
Subject: Re: [PATCH v7 2/2] ARM: ftrace: Add MODULE_PLTS support
Date: Fri, 12 Mar 2021 10:35:42 -0800	[thread overview]
Message-ID: <134e1a2c-daac-7b00-c170-bcca434d08df@gmail.com> (raw)
In-Reply-To: <20210312172401.36awjh4hmj4cs6ot@e107158-lin.cambridge.arm.com>

On 3/12/21 9:24 AM, Qais Yousef wrote:
> Hi Alexander
> 
> On 03/10/21 18:17, Alexander Sverdlin wrote:
>> Hi!
>>
>> On 10/03/2021 17:14, Florian Fainelli wrote:
>>>>>>> I tried on 5.12-rc2 and 5.11 but couldn't reproduce the problem using your
>>>>> I still can't reproduce on 5.12-rc2.
>>>>>
>>>>> I do have CONFIG_ARM_MODULE_PLTS=y. Do you need to do something else after
>>>>> loading the module? I tried starting ftrace, but maybe there's a particular
>>>>> combination required?
>>>> You need to load a BIG module, so big that it has no place in the modules area
>>>> any more and goes to vmalloc area.
>>> You absolutely need a very big module maybe more than one. When I tested
>>> this, I could use the two proprietary modules (*sigh*) that I needed to
>>> exercise against and loading one but not the other was not enough to
>>> make the second module loading spill into vmalloc space.
>>
>> Here is what I use instead of these real world "proprietary" modules (which of course
>> were the real trigger for the patch):
>>
>> https://www.spinics.net/lists/arm-kernel/msg878599.html
> 
> I am testing with your module. I can't reproduce the problem you describe with
> it as I stated.
> 
> I will try to spend more time on it on the weekend.

Alexander, do you load one or multiple instances of that fat module?

The test module does a 6 * 1024 * 1024 / 2 = 3 million repetitions of
the "nop" instruction which should be 32-bits wide in ARM mode and
16-bits wide in Thumb mode, right?

In ARM mode we have a 14MB module space, so 3 * 1024 * 1024 * 4 = 12MB,
which should still fit within if you have no module loaded, however a
second instance of the module should make us spill into vmalloc space.

In Thumb mode, we have a 6MB module space, so 3 * 1024 * 1024 * 2 = 6MB
so we may spill, but maybe not.

I was not able to reproduce the warning with just one module, but with
two (cannot have the same name BTW), it kicked in.
-- 
Florian

WARNING: multiple messages have this Message-ID (diff)
From: Florian Fainelli <f.fainelli@gmail.com>
To: Qais Yousef <qais.yousef@arm.com>,
	Alexander Sverdlin <alexander.sverdlin@nokia.com>
Cc: Steven Rostedt <rostedt@goodmis.org>,
	Ingo Molnar <mingo@redhat.com>,
	Russell King <linux@armlinux.org.uk>,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	Ard Biesheuvel <ard.biesheuvel@linaro.org>
Subject: Re: [PATCH v7 2/2] ARM: ftrace: Add MODULE_PLTS support
Date: Fri, 12 Mar 2021 10:35:42 -0800	[thread overview]
Message-ID: <134e1a2c-daac-7b00-c170-bcca434d08df@gmail.com> (raw)
In-Reply-To: <20210312172401.36awjh4hmj4cs6ot@e107158-lin.cambridge.arm.com>

On 3/12/21 9:24 AM, Qais Yousef wrote:
> Hi Alexander
> 
> On 03/10/21 18:17, Alexander Sverdlin wrote:
>> Hi!
>>
>> On 10/03/2021 17:14, Florian Fainelli wrote:
>>>>>>> I tried on 5.12-rc2 and 5.11 but couldn't reproduce the problem using your
>>>>> I still can't reproduce on 5.12-rc2.
>>>>>
>>>>> I do have CONFIG_ARM_MODULE_PLTS=y. Do you need to do something else after
>>>>> loading the module? I tried starting ftrace, but maybe there's a particular
>>>>> combination required?
>>>> You need to load a BIG module, so big that it has no place in the modules area
>>>> any more and goes to vmalloc area.
>>> You absolutely need a very big module maybe more than one. When I tested
>>> this, I could use the two proprietary modules (*sigh*) that I needed to
>>> exercise against and loading one but not the other was not enough to
>>> make the second module loading spill into vmalloc space.
>>
>> Here is what I use instead of these real world "proprietary" modules (which of course
>> were the real trigger for the patch):
>>
>> https://www.spinics.net/lists/arm-kernel/msg878599.html
> 
> I am testing with your module. I can't reproduce the problem you describe with
> it as I stated.
> 
> I will try to spend more time on it on the weekend.

Alexander, do you load one or multiple instances of that fat module?

The test module does a 6 * 1024 * 1024 / 2 = 3 million repetitions of
the "nop" instruction which should be 32-bits wide in ARM mode and
16-bits wide in Thumb mode, right?

In ARM mode we have a 14MB module space, so 3 * 1024 * 1024 * 4 = 12MB,
which should still fit within if you have no module loaded, however a
second instance of the module should make us spill into vmalloc space.

In Thumb mode, we have a 6MB module space, so 3 * 1024 * 1024 * 2 = 6MB
so we may spill, but maybe not.

I was not able to reproduce the warning with just one module, but with
two (cannot have the same name BTW), it kicked in.
-- 
Florian

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2021-03-12 18:36 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-27 11:09 [PATCH v7 0/2] ARM: Implement MODULE_PLT support in FTRACE Alexander A Sverdlin
2021-01-27 11:09 ` Alexander A Sverdlin
2021-01-27 11:09 ` [PATCH v7 1/2] ARM: PLT: Move struct plt_entries definition to header Alexander A Sverdlin
2021-01-27 11:09   ` Alexander A Sverdlin
2021-01-27 20:25   ` Florian Fainelli
2021-01-27 20:25     ` Florian Fainelli
2021-01-27 11:09 ` [PATCH v7 2/2] ARM: ftrace: Add MODULE_PLTS support Alexander A Sverdlin
2021-01-27 11:09   ` Alexander A Sverdlin
2021-01-27 19:36   ` Florian Fainelli
2021-01-27 19:36     ` Florian Fainelli
2021-03-07 17:26   ` Qais Yousef
2021-03-07 17:26     ` Qais Yousef
2021-03-08  7:58     ` Alexander Sverdlin
2021-03-08  7:58       ` Alexander Sverdlin
2021-03-09 17:42       ` Qais Yousef
2021-03-09 17:42         ` Qais Yousef
2021-03-10  7:23         ` Alexander Sverdlin
2021-03-10  7:23           ` Alexander Sverdlin
2021-03-10 16:14           ` Florian Fainelli
2021-03-10 16:14             ` Florian Fainelli
2021-03-10 17:17             ` Alexander Sverdlin
2021-03-10 17:17               ` Alexander Sverdlin
2021-03-12 17:24               ` Qais Yousef
2021-03-12 17:24                 ` Qais Yousef
2021-03-12 18:35                 ` Florian Fainelli [this message]
2021-03-12 18:35                   ` Florian Fainelli
2021-03-14 22:02                   ` Qais Yousef
2021-03-14 22:02                     ` Qais Yousef
2021-03-21 19:06                     ` Qais Yousef
2021-03-21 19:06                       ` Qais Yousef
2021-03-22 15:01                       ` Steven Rostedt
2021-03-22 15:01                         ` Steven Rostedt
2021-03-22 16:32                         ` Qais Yousef
2021-03-22 16:32                           ` Qais Yousef
2021-03-22 17:02                           ` Alexander Sverdlin
2021-03-22 17:02                             ` Alexander Sverdlin
2021-03-23 22:22                             ` Qais Yousef
2021-03-23 22:22                               ` Qais Yousef
2021-03-24  3:37                               ` Florian Fainelli
2021-03-24  3:37                                 ` Florian Fainelli
2021-03-24 16:10                                 ` Qais Yousef
2021-03-24 16:10                                   ` Qais Yousef
2021-03-24  9:04                               ` Alexander Sverdlin
2021-03-24  9:04                                 ` Alexander Sverdlin
2021-03-24 15:57                                 ` Qais Yousef
2021-03-24 15:57                                   ` Qais Yousef
2021-03-24 16:33                                   ` Alexander Sverdlin
2021-03-24 16:33                                     ` Alexander Sverdlin
2021-03-24 16:46                                     ` Qais Yousef
2021-03-24 16:46                                       ` Qais Yousef
2021-03-15  9:19                   ` Alexander Sverdlin
2021-03-15  9:19                     ` Alexander Sverdlin
2021-02-03 18:23 ` [PATCH v7 0/2] ARM: Implement MODULE_PLT support in FTRACE Florian Fainelli
2021-02-03 18:23   ` Florian Fainelli
2021-02-15 18:31   ` Ard Biesheuvel
2021-02-15 18:31     ` Ard Biesheuvel
2021-03-02  8:29     ` Linus Walleij
2021-03-02  8:29       ` Linus Walleij
2021-03-02 10:00       ` Alexander Sverdlin
2021-03-02 10:00         ` Alexander Sverdlin

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=134e1a2c-daac-7b00-c170-bcca434d08df@gmail.com \
    --to=f.fainelli@gmail.com \
    --cc=alexander.sverdlin@nokia.com \
    --cc=ard.biesheuvel@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=mingo@redhat.com \
    --cc=qais.yousef@arm.com \
    --cc=rostedt@goodmis.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.