All of lore.kernel.org
 help / color / mirror / Atom feed
From: Igor Mammedov <imammedo@redhat.com>
To: "Philippe Mathieu-Daudé" <philmd@redhat.com>
Cc: deller@gmx.de, mark.cave-ayland@ilande.co.uk,
	qemu-devel@nongnu.org, qemu-ppc@nongnu.org, hpoussin@reactos.org,
	david@gibson.dropbear.id.au, atar4qemu@gmail.com,
	rth@twiddle.net
Subject: Re: [PATCH 0/3] eliminate remaining places that abuse memory_region_allocate_system_memory()
Date: Tue, 8 Oct 2019 15:52:08 +0200	[thread overview]
Message-ID: <20191008155208.59b22535@redhat.com> (raw)
In-Reply-To: <3b7466af-2c05-f47e-f218-30a8b5ed5663@redhat.com>

On Tue, 8 Oct 2019 14:41:25 +0200
Philippe Mathieu-Daudé <philmd@redhat.com> wrote:

> Hi Igor,
> 
> On 10/8/19 1:33 PM, Igor Mammedov wrote:
> > Series cleans up remaining boards that call memory_region_allocate_system_memory()
> > multiple times, violating interface contract (the function should be called only
> > once).
> > 
> > With that cleaned up, it should be possible to switch from adhoc RAM allocation
> > in memory_region_allocate_system_memory()->allocate_system_memory_nonnuma() to
> > memory-backend based allocation, remaining roadblock for doing it is deprecated
> > -mem-path fallback to RAM allocation, which is scheduled for removal at 4.3
> > merge window. So remaining patches to consolidate system RAM allocation around
> > memory-backends and aliasing -mem-path/mem-prealloc to it are postponed till
> > then.  
> 
> How do we protect the codebase for new boards to not make the same mistake?
> 
> What about some code like this snippet (or nicer, but since this is a 
> developer error, and assert is enough IMO):
probably it's not worth effort (it's not too long till 4.2 softfreeze).

Like cover letter say, I'm planing to finish refactoring of
memory_region_allocate_system_memory() and I hope this function
will be gone during 4.3 and most boards will only need to map
pre-created (by common code) memory-backend wherever they used to
map RAM memory region.

> -- >8 --  
> 
> diff --git a/hw/core/numa.c b/hw/core/numa.c
> index 4dfec5c95b..a487677672 100644
> --- a/hw/core/numa.c
> +++ b/hw/core/numa.c
> @@ -484,6 +484,11 @@ static void 
> allocate_system_memory_nonnuma(MemoryRegion *mr, Object *owner,
>                                              const char *name,
>                                              uint64_t ram_size)
>   {
> +    static bool nonnuma_system_memory_allocated;
> +
> +    g_assert(!nonnuma_system_memory_allocated);
> +    nonnuma_system_memory_allocated = true;
> +
>       if (mem_path) {
>   #ifdef __linux__
>           Error *err = NULL;
> ---
> 
> $ hppa-softmmu/qemu-system-hppa
> **
> ERROR:/home/phil/source/qemu/hw/core/numa.c:489:allocate_system_memory_nonnuma: 
> assertion failed: (!nonnuma_system_memory_allocated)
> Aborted (core dumped)



  reply	other threads:[~2019-10-08 13:53 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-08 11:33 [PATCH 0/3] eliminate remaining places that abuse memory_region_allocate_system_memory() Igor Mammedov
2019-10-08 11:33 ` [PATCH 1/3] sparc64: use memory_region_allocate_system_memory() only for '-m' specified RAM Igor Mammedov
2019-10-08 12:09   ` Philippe Mathieu-Daudé
2019-10-08 13:55     ` Igor Mammedov
2019-10-08 11:33 ` [PATCH 2/3] ppc: rs6000_mc: drop usage of memory_region_allocate_system_memory() Igor Mammedov
2019-10-08 12:24   ` Philippe Mathieu-Daudé
2019-10-09  1:21   ` David Gibson
2019-10-09 11:19     ` Igor Mammedov
2019-10-09 12:02       ` David Gibson
2019-10-08 11:33 ` [PATCH 3/3] hppa: drop usage of memory_region_allocate_system_memory() for ROM Igor Mammedov
2019-10-08 12:30   ` Philippe Mathieu-Daudé
2019-10-20 21:49   ` Philippe Mathieu-Daudé
2019-10-08 12:41 ` [PATCH 0/3] eliminate remaining places that abuse memory_region_allocate_system_memory() Philippe Mathieu-Daudé
2019-10-08 13:52   ` Igor Mammedov [this message]
2019-10-10 17:35 ` Igor Mammedov
2019-10-11 15:23   ` Igor Mammedov
2019-10-20 14:38     ` Philippe Mathieu-Daudé
2019-10-22 22:09       ` Eduardo Habkost
2019-10-21  8:59 ` Philippe Mathieu-Daudé
2019-10-21  9:18   ` Igor Mammedov

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=20191008155208.59b22535@redhat.com \
    --to=imammedo@redhat.com \
    --cc=atar4qemu@gmail.com \
    --cc=david@gibson.dropbear.id.au \
    --cc=deller@gmx.de \
    --cc=hpoussin@reactos.org \
    --cc=mark.cave-ayland@ilande.co.uk \
    --cc=philmd@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    --cc=rth@twiddle.net \
    /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.