All of lore.kernel.org
 help / color / mirror / Atom feed
From: James Morse <james.morse@arm.com>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: kexec@lists.infradead.org, linux-mm@kvack.org,
	linux-arm-kernel@lists.infradead.org,
	Anshuman Khandual <anshuman.khandual@arm.com>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Bhupesh Sharma <bhsharma@redhat.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Will Deacon <will@kernel.org>
Subject: Re: [PATCH 1/3] kexec: Prevent removal of memory in use by a loaded kexec image
Date: Wed, 22 Apr 2020 13:28:59 +0100	[thread overview]
Message-ID: <a694cea6-4449-c77a-98f7-bd7a49cf47fc@arm.com> (raw)
In-Reply-To: <87d088h4k8.fsf@x220.int.ebiederm.org>

Hi Eric,

On 15/04/2020 21:33, Eric W. Biederman wrote:
> James Morse <james.morse@arm.com> writes:
> 
>> An image loaded for kexec is not stored in place, instead its segments
>> are scattered through memory, and are re-assembled when needed. In the
>> meantime, the target memory may have been removed.
>>
>> Because mm is not aware that this memory is still in use, it allows it
>> to be removed.
>>
>> Add a memory notifier to prevent the removal of memory regions that
>> overlap with a loaded kexec image segment. e.g., when triggered from the
>> Qemu console:
>> | kexec_core: memory region in use
>> | memory memory32: Offline failed.
>>
>> Signed-off-by: James Morse <james.morse@arm.com>
> 
> Given that we are talking about the destination pages for kexec
> not where the loaded kernel is currently stored the description is
> confusing.

I think David has some better wording to cover this. I thought I had it with 'scattered
and re-assembled'.


> Beyond that I think it would be better to simply unload the loaded
> kernel at memory hotunplug time.

Unconditionally, or if it aliases the removed region?

I don't particular like it. User-space has asked for two impossible things, we are
changing the answer to the first when we see the second. Its a bit spooky. (maybe no one
will notice)


> Usually somewhere in the loaded image
> is a copy of the memory map at the time the kexec kernel was loaded.
> That will invalidate the memory map as well.

Ah, unconditionally. Sure, x86 needs this.
(arm64 re-discovers the memory map from firmware tables after kexec)

If that's an acceptable change in behaviour, sure, lets do that.


> All of this should be for a very brief window of a few seconds, as
> the loaded kexec image is quite short.

It seems I'm the outlier anticipating anything could happen between those syscalls.


Thanks,

James


WARNING: multiple messages have this Message-ID (diff)
From: James Morse <james.morse@arm.com>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Anshuman Khandual <anshuman.khandual@arm.com>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Bhupesh Sharma <bhsharma@redhat.com>,
	kexec@lists.infradead.org, linux-mm@kvack.org,
	Andrew Morton <akpm@linux-foundation.org>,
	Will Deacon <will@kernel.org>,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 1/3] kexec: Prevent removal of memory in use by a loaded kexec image
Date: Wed, 22 Apr 2020 13:28:59 +0100	[thread overview]
Message-ID: <a694cea6-4449-c77a-98f7-bd7a49cf47fc@arm.com> (raw)
In-Reply-To: <87d088h4k8.fsf@x220.int.ebiederm.org>

Hi Eric,

On 15/04/2020 21:33, Eric W. Biederman wrote:
> James Morse <james.morse@arm.com> writes:
> 
>> An image loaded for kexec is not stored in place, instead its segments
>> are scattered through memory, and are re-assembled when needed. In the
>> meantime, the target memory may have been removed.
>>
>> Because mm is not aware that this memory is still in use, it allows it
>> to be removed.
>>
>> Add a memory notifier to prevent the removal of memory regions that
>> overlap with a loaded kexec image segment. e.g., when triggered from the
>> Qemu console:
>> | kexec_core: memory region in use
>> | memory memory32: Offline failed.
>>
>> Signed-off-by: James Morse <james.morse@arm.com>
> 
> Given that we are talking about the destination pages for kexec
> not where the loaded kernel is currently stored the description is
> confusing.

I think David has some better wording to cover this. I thought I had it with 'scattered
and re-assembled'.


> Beyond that I think it would be better to simply unload the loaded
> kernel at memory hotunplug time.

Unconditionally, or if it aliases the removed region?

I don't particular like it. User-space has asked for two impossible things, we are
changing the answer to the first when we see the second. Its a bit spooky. (maybe no one
will notice)


> Usually somewhere in the loaded image
> is a copy of the memory map at the time the kexec kernel was loaded.
> That will invalidate the memory map as well.

Ah, unconditionally. Sure, x86 needs this.
(arm64 re-discovers the memory map from firmware tables after kexec)

If that's an acceptable change in behaviour, sure, lets do that.


> All of this should be for a very brief window of a few seconds, as
> the loaded kexec image is quite short.

It seems I'm the outlier anticipating anything could happen between those syscalls.


Thanks,

James

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

WARNING: multiple messages have this Message-ID (diff)
From: James Morse <james.morse@arm.com>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Anshuman Khandual <anshuman.khandual@arm.com>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Bhupesh Sharma <bhsharma@redhat.com>,
	kexec@lists.infradead.org, linux-mm@kvack.org,
	Andrew Morton <akpm@linux-foundation.org>,
	Will Deacon <will@kernel.org>,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 1/3] kexec: Prevent removal of memory in use by a loaded kexec image
Date: Wed, 22 Apr 2020 13:28:59 +0100	[thread overview]
Message-ID: <a694cea6-4449-c77a-98f7-bd7a49cf47fc@arm.com> (raw)
In-Reply-To: <87d088h4k8.fsf@x220.int.ebiederm.org>

Hi Eric,

On 15/04/2020 21:33, Eric W. Biederman wrote:
> James Morse <james.morse@arm.com> writes:
> 
>> An image loaded for kexec is not stored in place, instead its segments
>> are scattered through memory, and are re-assembled when needed. In the
>> meantime, the target memory may have been removed.
>>
>> Because mm is not aware that this memory is still in use, it allows it
>> to be removed.
>>
>> Add a memory notifier to prevent the removal of memory regions that
>> overlap with a loaded kexec image segment. e.g., when triggered from the
>> Qemu console:
>> | kexec_core: memory region in use
>> | memory memory32: Offline failed.
>>
>> Signed-off-by: James Morse <james.morse@arm.com>
> 
> Given that we are talking about the destination pages for kexec
> not where the loaded kernel is currently stored the description is
> confusing.

I think David has some better wording to cover this. I thought I had it with 'scattered
and re-assembled'.


> Beyond that I think it would be better to simply unload the loaded
> kernel at memory hotunplug time.

Unconditionally, or if it aliases the removed region?

I don't particular like it. User-space has asked for two impossible things, we are
changing the answer to the first when we see the second. Its a bit spooky. (maybe no one
will notice)


> Usually somewhere in the loaded image
> is a copy of the memory map at the time the kexec kernel was loaded.
> That will invalidate the memory map as well.

Ah, unconditionally. Sure, x86 needs this.
(arm64 re-discovers the memory map from firmware tables after kexec)

If that's an acceptable change in behaviour, sure, lets do that.


> All of this should be for a very brief window of a few seconds, as
> the loaded kexec image is quite short.

It seems I'm the outlier anticipating anything could happen between those syscalls.


Thanks,

James

_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

  reply	other threads:[~2020-04-22 12:29 UTC|newest]

Thread overview: 264+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-26 18:07 [PATCH 0/3] kexec/memory_hotplug: Prevent removal and accidental use James Morse
2020-03-26 18:07 ` James Morse
2020-03-26 18:07 ` [PATCH 1/3] kexec: Prevent removal of memory in use by a loaded kexec image James Morse
2020-03-26 18:07   ` James Morse
2020-03-27  0:43   ` Anshuman Khandual
2020-03-27  0:43     ` Anshuman Khandual
2020-03-27  2:54     ` Baoquan He
2020-03-27  2:54       ` Baoquan He
2020-03-27 15:46     ` James Morse
2020-03-27 15:46       ` James Morse
2020-03-27  2:34   ` Baoquan He
2020-03-27  2:34     ` Baoquan He
2020-03-27  9:30   ` David Hildenbrand
2020-03-27  9:30     ` David Hildenbrand
2020-03-27 16:56     ` James Morse
2020-03-27 16:56       ` James Morse
2020-03-27 17:06       ` David Hildenbrand
2020-03-27 17:06         ` David Hildenbrand
2020-03-27 18:07         ` James Morse
2020-03-27 18:07           ` James Morse
2020-03-27 18:52           ` David Hildenbrand
2020-03-27 18:52             ` David Hildenbrand
2020-03-30 13:00             ` James Morse
2020-03-30 13:00               ` James Morse
2020-03-30 13:13               ` David Hildenbrand
2020-03-30 13:13                 ` David Hildenbrand
2020-03-30 17:17                 ` James Morse
2020-03-30 17:17                   ` James Morse
2020-03-30 18:14                   ` David Hildenbrand
2020-03-30 18:14                     ` David Hildenbrand
2020-04-10 19:10                     ` Andrew Morton
2020-04-10 19:10                       ` Andrew Morton
2020-04-10 19:10                       ` Andrew Morton
2020-04-11  3:44                       ` Baoquan He
2020-04-11  3:44                         ` Baoquan He
2020-04-11  3:44                         ` Baoquan He
2020-04-11  9:30                         ` Russell King - ARM Linux admin
2020-04-11  9:30                           ` Russell King - ARM Linux admin
2020-04-11  9:30                           ` Russell King - ARM Linux admin
2020-04-11  9:58                           ` David Hildenbrand
2020-04-11  9:58                             ` David Hildenbrand
2020-04-11  9:58                             ` David Hildenbrand
2020-04-12  5:35                           ` Baoquan He
2020-04-12  5:35                             ` Baoquan He
2020-04-12  5:35                             ` Baoquan He
2020-04-12  8:08                             ` Russell King - ARM Linux admin
2020-04-12  8:08                               ` Russell King - ARM Linux admin
2020-04-12  8:08                               ` Russell King - ARM Linux admin
2020-04-12 19:52                               ` Eric W. Biederman
2020-04-12 19:52                                 ` Eric W. Biederman
2020-04-12 19:52                                 ` Eric W. Biederman
2020-04-12 20:37                                 ` Bhupesh SHARMA
2020-04-12 20:37                                   ` Bhupesh SHARMA
2020-04-12 20:37                                   ` Bhupesh SHARMA
2020-04-13  2:37                                 ` Baoquan He
2020-04-13  2:37                                   ` Baoquan He
2020-04-13  2:37                                   ` Baoquan He
2020-04-13 13:15                                   ` Eric W. Biederman
2020-04-13 13:15                                     ` Eric W. Biederman
2020-04-13 13:15                                     ` Eric W. Biederman
2020-04-13 23:01                                     ` Andrew Morton
2020-04-13 23:01                                       ` Andrew Morton
2020-04-13 23:01                                       ` Andrew Morton
2020-04-14  6:13                                       ` Eric W. Biederman
2020-04-14  6:13                                         ` Eric W. Biederman
2020-04-14  6:13                                         ` Eric W. Biederman
2020-04-14  6:40                                     ` Baoquan He
2020-04-14  6:40                                       ` Baoquan He
2020-04-14  6:40                                       ` Baoquan He
2020-04-14  6:51                                       ` Baoquan He
2020-04-14  6:51                                         ` Baoquan He
2020-04-14  6:51                                         ` Baoquan He
2020-04-14  8:00                                       ` David Hildenbrand
2020-04-14  8:00                                         ` David Hildenbrand
2020-04-14  8:00                                         ` David Hildenbrand
2020-04-14  9:22                                         ` Baoquan He
2020-04-14  9:22                                           ` Baoquan He
2020-04-14  9:22                                           ` Baoquan He
2020-04-14  9:22                                           ` Baoquan He
2020-04-14  9:37                                           ` David Hildenbrand
2020-04-14  9:37                                             ` David Hildenbrand
2020-04-14  9:37                                             ` David Hildenbrand
2020-04-14  9:37                                             ` David Hildenbrand
2020-04-14 14:39                                             ` Baoquan He
2020-04-14 14:39                                               ` Baoquan He
2020-04-14 14:39                                               ` Baoquan He
2020-04-14 14:39                                               ` Baoquan He
2020-04-14 14:49                                               ` David Hildenbrand
2020-04-14 14:49                                                 ` David Hildenbrand
2020-04-14 14:49                                                 ` David Hildenbrand
2020-04-14 14:49                                                 ` David Hildenbrand
2020-04-15  2:35                                                 ` Baoquan He
2020-04-15  2:35                                                   ` Baoquan He
2020-04-15  2:35                                                   ` Baoquan He
2020-04-15  2:35                                                   ` Baoquan He
2020-04-16 13:31                                                   ` David Hildenbrand
2020-04-16 13:31                                                     ` David Hildenbrand
2020-04-16 13:31                                                     ` David Hildenbrand
2020-04-16 13:31                                                     ` David Hildenbrand
2020-04-16 14:02                                                     ` Baoquan He
2020-04-16 14:02                                                       ` Baoquan He
2020-04-16 14:02                                                       ` Baoquan He
2020-04-16 14:02                                                       ` Baoquan He
2020-04-16 14:09                                                       ` David Hildenbrand
2020-04-16 14:09                                                         ` David Hildenbrand
2020-04-16 14:09                                                         ` David Hildenbrand
2020-04-16 14:09                                                         ` David Hildenbrand
2020-04-16 14:36                                                         ` Baoquan He
2020-04-16 14:36                                                           ` Baoquan He
2020-04-16 14:36                                                           ` Baoquan He
2020-04-16 14:36                                                           ` Baoquan He
2020-04-16 14:47                                                           ` David Hildenbrand
2020-04-16 14:47                                                             ` David Hildenbrand
2020-04-16 14:47                                                             ` David Hildenbrand
2020-04-16 14:47                                                             ` David Hildenbrand
2020-04-21 13:29                                                             ` David Hildenbrand
2020-04-21 13:29                                                               ` David Hildenbrand
2020-04-21 13:29                                                               ` David Hildenbrand
2020-04-21 13:29                                                               ` David Hildenbrand
2020-04-21 13:57                                                               ` David Hildenbrand
2020-04-21 13:57                                                                 ` David Hildenbrand
2020-04-21 13:57                                                                 ` David Hildenbrand
2020-04-21 13:57                                                                 ` David Hildenbrand
2020-04-21 13:59                                                               ` Eric W. Biederman
2020-04-21 13:59                                                                 ` Eric W. Biederman
2020-04-21 13:59                                                                 ` Eric W. Biederman
2020-04-21 13:59                                                                 ` Eric W. Biederman
2020-04-21 14:30                                                                 ` David Hildenbrand
2020-04-21 14:30                                                                   ` David Hildenbrand
2020-04-21 14:30                                                                   ` David Hildenbrand
2020-04-21 14:30                                                                   ` David Hildenbrand
2020-04-22  9:17                                                               ` Baoquan He
2020-04-22  9:17                                                                 ` Baoquan He
2020-04-22  9:17                                                                 ` Baoquan He
2020-04-22  9:17                                                                 ` Baoquan He
2020-04-22  9:24                                                                 ` David Hildenbrand
2020-04-22  9:24                                                                   ` David Hildenbrand
2020-04-22  9:24                                                                   ` David Hildenbrand
2020-04-22  9:24                                                                   ` David Hildenbrand
2020-04-22  9:57                                                                   ` Baoquan He
2020-04-22  9:57                                                                     ` Baoquan He
2020-04-22  9:57                                                                     ` Baoquan He
2020-04-22  9:57                                                                     ` Baoquan He
2020-04-22 10:05                                                                     ` David Hildenbrand
2020-04-22 10:05                                                                       ` David Hildenbrand
2020-04-22 10:05                                                                       ` David Hildenbrand
2020-04-22 10:05                                                                       ` David Hildenbrand
2020-04-22 10:36                                                                       ` Baoquan He
2020-04-22 10:36                                                                         ` Baoquan He
2020-04-22 10:36                                                                         ` Baoquan He
2020-04-22 10:36                                                                         ` Baoquan He
2020-04-14  9:16                                     ` Dave Young
2020-04-14  9:16                                       ` Dave Young
2020-04-14  9:16                                       ` Dave Young
2020-04-14  9:38                                       ` Dave Young
2020-04-14  9:38                                         ` Dave Young
2020-04-14  9:38                                         ` Dave Young
2020-04-14  7:05                       ` David Hildenbrand
2020-04-14  7:05                         ` David Hildenbrand
2020-04-14  7:05                         ` David Hildenbrand
2020-04-14 16:55                         ` James Morse
2020-04-14 16:55                           ` James Morse
2020-04-14 16:55                           ` James Morse
2020-04-14 17:41                           ` David Hildenbrand
2020-04-14 17:41                             ` David Hildenbrand
2020-04-14 17:41                             ` David Hildenbrand
2020-04-15 20:33   ` Eric W. Biederman
2020-04-15 20:33     ` Eric W. Biederman
2020-04-15 20:33     ` Eric W. Biederman
2020-04-22 12:28     ` James Morse [this message]
2020-04-22 12:28       ` James Morse
2020-04-22 12:28       ` James Morse
2020-04-22 15:25       ` Eric W. Biederman
2020-04-22 15:25         ` Eric W. Biederman
2020-04-22 15:25         ` Eric W. Biederman
2020-04-22 16:40         ` David Hildenbrand
2020-04-22 16:40           ` David Hildenbrand
2020-04-22 16:40           ` David Hildenbrand
2020-04-23 16:29           ` Eric W. Biederman
2020-04-23 16:29             ` Eric W. Biederman
2020-04-23 16:29             ` Eric W. Biederman
2020-04-24  7:39             ` David Hildenbrand
2020-04-24  7:39               ` David Hildenbrand
2020-04-24  7:39               ` David Hildenbrand
2020-04-24  7:41               ` David Hildenbrand
2020-04-24  7:41                 ` David Hildenbrand
2020-04-24  7:41                 ` David Hildenbrand
2020-05-01 16:55           ` James Morse
2020-05-01 16:55             ` James Morse
2020-05-01 16:55             ` James Morse
2020-03-26 18:07 ` [PATCH 2/3] mm/memory_hotplug: Allow arch override of non boot memory resource names James Morse
2020-03-26 18:07   ` James Morse
2020-03-27  9:59   ` David Hildenbrand
2020-03-27  9:59     ` David Hildenbrand
2020-03-27 15:39     ` James Morse
2020-03-27 15:39       ` James Morse
2020-03-30 13:23       ` David Hildenbrand
2020-03-30 13:23         ` David Hildenbrand
2020-03-30 17:17         ` James Morse
2020-03-30 17:17           ` James Morse
2020-04-02  5:49   ` Dave Young
2020-04-02  5:49     ` Dave Young
2020-04-02  5:49     ` Dave Young
2020-04-02  6:12     ` piliu
2020-04-02  6:12       ` piliu
2020-04-02  6:12       ` piliu
2020-04-14 17:21       ` James Morse
2020-04-14 17:21         ` James Morse
2020-04-14 17:21         ` James Morse
2020-04-15 20:36   ` Eric W. Biederman
2020-04-15 20:36     ` Eric W. Biederman
2020-04-15 20:36     ` Eric W. Biederman
2020-04-22 12:14     ` James Morse
2020-04-22 12:14       ` James Morse
2020-04-22 12:14       ` James Morse
2020-05-09  0:45   ` Andrew Morton
2020-05-09  0:45     ` Andrew Morton
2020-05-09  0:45     ` Andrew Morton
2020-05-11  8:35     ` David Hildenbrand
2020-05-11  8:35       ` David Hildenbrand
2020-05-11  8:35       ` David Hildenbrand
2020-03-26 18:07 ` [PATCH 3/3] arm64: memory: Give hotplug memory a different resource name James Morse
2020-03-26 18:07   ` James Morse
2020-03-30 19:01   ` David Hildenbrand
2020-03-30 19:01     ` David Hildenbrand
2020-04-15 20:37   ` Eric W. Biederman
2020-04-15 20:37     ` Eric W. Biederman
2020-04-15 20:37     ` Eric W. Biederman
2020-04-22 12:14     ` James Morse
2020-04-22 12:14       ` James Morse
2020-04-22 12:14       ` James Morse
2020-03-27  2:11 ` [PATCH 0/3] kexec/memory_hotplug: Prevent removal and accidental use Baoquan He
2020-03-27  2:11   ` Baoquan He
2020-03-27 15:40   ` James Morse
2020-03-27 15:40     ` James Morse
2020-03-27  9:27 ` David Hildenbrand
2020-03-27  9:27   ` David Hildenbrand
2020-03-27 15:42   ` James Morse
2020-03-27 15:42     ` James Morse
2020-03-30 13:18     ` David Hildenbrand
2020-03-30 13:18       ` David Hildenbrand
2020-03-30 13:55 ` Baoquan He
2020-03-30 13:55   ` Baoquan He
2020-03-30 17:17   ` James Morse
2020-03-30 17:17     ` James Morse
2020-03-31  3:46     ` Dave Young
2020-03-31  3:46       ` Dave Young
2020-04-14 17:31       ` James Morse
2020-04-14 17:31         ` James Morse
2020-04-14 17:31         ` James Morse
2020-03-31  3:38 ` Dave Young
2020-03-31  3:38   ` Dave Young
2020-04-15 20:29 ` Eric W. Biederman
2020-04-15 20:29   ` Eric W. Biederman
2020-04-15 20:29   ` Eric W. Biederman
2020-04-22 12:14   ` James Morse
2020-04-22 12:14     ` James Morse
2020-04-22 12:14     ` James Morse
2020-04-22 13:04     ` Eric W. Biederman
2020-04-22 13:04       ` Eric W. Biederman
2020-04-22 13:04       ` Eric W. Biederman
2020-04-22 15:40       ` James Morse
2020-04-22 15:40         ` James Morse
2020-04-22 15:40         ` James Morse

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=a694cea6-4449-c77a-98f7-bd7a49cf47fc@arm.com \
    --to=james.morse@arm.com \
    --cc=akpm@linux-foundation.org \
    --cc=anshuman.khandual@arm.com \
    --cc=bhsharma@redhat.com \
    --cc=catalin.marinas@arm.com \
    --cc=ebiederm@xmission.com \
    --cc=kexec@lists.infradead.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-mm@kvack.org \
    --cc=will@kernel.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.