* [PATCH v3 0/5] memory: Add 'priority' property setter
@ 2021-03-27 14:34 Philippe Mathieu-Daudé
2021-03-27 14:34 ` [PATCH-for-6.0 v3 1/5] memory: Fix memory_region 'priority' property sign Philippe Mathieu-Daudé
` (5 more replies)
0 siblings, 6 replies; 9+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-03-27 14:34 UTC (permalink / raw)
To: qemu-devel
Cc: Alexey Kardashevskiy, Paolo Bonzini, KONRAD Frederic,
Philippe Mathieu-Daudé,
Peter Maydell
The first patch is an old fix, it would be nice to get it
merged eventually, but not a problem during years, so can
also wait 6.1.
The second patch add the memory_region_set_priority() helper
useful to memory controller devices.
The rest add the 'size'/'priority' object setters.
Supersedes: <20180405012241.25714-1-f4bug@amsat.org>
https://www.mail-archive.com/qemu-devel@nongnu.org/msg525635.html
Philippe Mathieu-Daudé (5):
memory: Fix memory_region 'priority' property sign
memory: Add memory_region_set_priority()
memory: Rename MemoryRegion object getters
memory: Add setter for MemoryRegion object 'size' property
memory: Add setter for MemoryRegion object 'priority' property
include/exec/memory.h | 10 ++++++++
softmmu/memory.c | 56 +++++++++++++++++++++++++++++++++++--------
2 files changed, 56 insertions(+), 10 deletions(-)
--
2.26.2
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH-for-6.0 v3 1/5] memory: Fix memory_region 'priority' property sign
2021-03-27 14:34 [PATCH v3 0/5] memory: Add 'priority' property setter Philippe Mathieu-Daudé
@ 2021-03-27 14:34 ` Philippe Mathieu-Daudé
2021-03-27 14:34 ` [PATCH-for-6.1 v3 2/5] memory: Add memory_region_set_priority() Philippe Mathieu-Daudé
` (4 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-03-27 14:34 UTC (permalink / raw)
To: qemu-devel
Cc: Alexey Kardashevskiy, Paolo Bonzini, KONRAD Frederic,
Philippe Mathieu-Daudé,
Peter Maydell
Priorities can be negative, fix this limitation.
Fixes: d33382da9ab ("memory: MemoryRegion: Add may-overlap and priority props")
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
softmmu/memory.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/softmmu/memory.c b/softmmu/memory.c
index d4493ef9e43..4fbeee02dc7 100644
--- a/softmmu/memory.c
+++ b/softmmu/memory.c
@@ -1257,7 +1257,7 @@ static void memory_region_initfn(Object *obj)
object_property_add_uint64_ptr(OBJECT(mr), "addr",
&mr->addr, OBJ_PROP_FLAG_READ);
- object_property_add(OBJECT(mr), "priority", "uint32",
+ object_property_add(OBJECT(mr), "priority", "int32",
memory_region_get_priority,
NULL, /* memory_region_set_priority */
NULL, NULL);
--
2.26.2
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH-for-6.1 v3 2/5] memory: Add memory_region_set_priority()
2021-03-27 14:34 [PATCH v3 0/5] memory: Add 'priority' property setter Philippe Mathieu-Daudé
2021-03-27 14:34 ` [PATCH-for-6.0 v3 1/5] memory: Fix memory_region 'priority' property sign Philippe Mathieu-Daudé
@ 2021-03-27 14:34 ` Philippe Mathieu-Daudé
2021-03-27 14:34 ` [PATCH-for-6.1 v3 3/5] memory: Rename MemoryRegion object getters Philippe Mathieu-Daudé
` (3 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-03-27 14:34 UTC (permalink / raw)
To: qemu-devel
Cc: Alexey Kardashevskiy, Paolo Bonzini, KONRAD Frederic,
Philippe Mathieu-Daudé,
Peter Maydell
Add an helper to change the priority of a memory region at runtime.
Suggested-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
include/exec/memory.h | 10 ++++++++++
softmmu/memory.c | 11 +++++++++++
2 files changed, 21 insertions(+)
diff --git a/include/exec/memory.h b/include/exec/memory.h
index 5728a681b27..6ad9ff83457 100644
--- a/include/exec/memory.h
+++ b/include/exec/memory.h
@@ -1983,6 +1983,16 @@ void memory_region_set_size(MemoryRegion *mr, uint64_t size);
void memory_region_set_alias_offset(MemoryRegion *mr,
hwaddr offset);
+/**
+ * memory_region_set_priority: dynamically update the priority of a region.
+ *
+ * Dynamically updates the priority of a region.
+ *
+ * @mr: the #MemoryRegion to be updated.
+ * @priority: priority of the region.
+ */
+void memory_region_set_priority(MemoryRegion *mr, int priority);
+
/**
* memory_region_present: checks if an address relative to a @container
* translates into #MemoryRegion within @container
diff --git a/softmmu/memory.c b/softmmu/memory.c
index 4fbeee02dc7..fdba938f299 100644
--- a/softmmu/memory.c
+++ b/softmmu/memory.c
@@ -2504,6 +2504,17 @@ void memory_region_set_size(MemoryRegion *mr, uint64_t size)
memory_region_transaction_commit();
}
+void memory_region_set_priority(MemoryRegion *mr, int priority)
+{
+ if (priority == mr->priority) {
+ return;
+ }
+ memory_region_transaction_begin();
+ mr->priority = priority;
+ memory_region_update_pending = true;
+ memory_region_transaction_commit();
+}
+
static void memory_region_readd_subregion(MemoryRegion *mr)
{
MemoryRegion *container = mr->container;
--
2.26.2
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH-for-6.1 v3 3/5] memory: Rename MemoryRegion object getters
2021-03-27 14:34 [PATCH v3 0/5] memory: Add 'priority' property setter Philippe Mathieu-Daudé
2021-03-27 14:34 ` [PATCH-for-6.0 v3 1/5] memory: Fix memory_region 'priority' property sign Philippe Mathieu-Daudé
2021-03-27 14:34 ` [PATCH-for-6.1 v3 2/5] memory: Add memory_region_set_priority() Philippe Mathieu-Daudé
@ 2021-03-27 14:34 ` Philippe Mathieu-Daudé
2021-03-27 14:34 ` [PATCH-for-6.1 v3 4/5] memory: Add setter for MemoryRegion object 'size' property Philippe Mathieu-Daudé
` (2 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-03-27 14:34 UTC (permalink / raw)
To: qemu-devel
Cc: Alexey Kardashevskiy, Paolo Bonzini, KONRAD Frederic,
Philippe Mathieu-Daudé,
Peter Maydell
We want to add the corresponding object setters, but the
memory_region_set_size() / memory_region_set_priority()
functions already exist. Rename the getters so match with
the setters we are going to add in the next patches.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
softmmu/memory.c | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/softmmu/memory.c b/softmmu/memory.c
index fdba938f299..3f4cd4e85d7 100644
--- a/softmmu/memory.c
+++ b/softmmu/memory.c
@@ -1217,9 +1217,9 @@ static Object *memory_region_resolve_container(Object *obj, void *opaque,
return OBJECT(mr->container);
}
-static void memory_region_get_priority(Object *obj, Visitor *v,
- const char *name, void *opaque,
- Error **errp)
+static void memory_region_priority_getter(Object *obj, Visitor *v,
+ const char *name, void *opaque,
+ Error **errp)
{
MemoryRegion *mr = MEMORY_REGION(obj);
int32_t value = mr->priority;
@@ -1227,8 +1227,9 @@ static void memory_region_get_priority(Object *obj, Visitor *v,
visit_type_int32(v, name, &value, errp);
}
-static void memory_region_get_size(Object *obj, Visitor *v, const char *name,
- void *opaque, Error **errp)
+static void memory_region_size_getter(Object *obj, Visitor *v,
+ const char *name, void *opaque,
+ Error **errp)
{
MemoryRegion *mr = MEMORY_REGION(obj);
uint64_t value = memory_region_size(mr);
@@ -1258,12 +1259,12 @@ static void memory_region_initfn(Object *obj)
object_property_add_uint64_ptr(OBJECT(mr), "addr",
&mr->addr, OBJ_PROP_FLAG_READ);
object_property_add(OBJECT(mr), "priority", "int32",
- memory_region_get_priority,
- NULL, /* memory_region_set_priority */
+ memory_region_priority_getter,
+ NULL, /* memory_region_priority_setter */
NULL, NULL);
object_property_add(OBJECT(mr), "size", "uint64",
- memory_region_get_size,
- NULL, /* memory_region_set_size, */
+ memory_region_size_getter,
+ NULL, /* memory_region_size_setter, */
NULL, NULL);
}
--
2.26.2
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH-for-6.1 v3 4/5] memory: Add setter for MemoryRegion object 'size' property
2021-03-27 14:34 [PATCH v3 0/5] memory: Add 'priority' property setter Philippe Mathieu-Daudé
` (2 preceding siblings ...)
2021-03-27 14:34 ` [PATCH-for-6.1 v3 3/5] memory: Rename MemoryRegion object getters Philippe Mathieu-Daudé
@ 2021-03-27 14:34 ` Philippe Mathieu-Daudé
2021-03-27 14:34 ` [PATCH-for-6.1 v3 5/5] memory: Add setter for MemoryRegion object 'priority' property Philippe Mathieu-Daudé
2021-03-27 16:58 ` [PATCH v3 0/5] memory: Add 'priority' property setter Peter Maydell
5 siblings, 0 replies; 9+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-03-27 14:34 UTC (permalink / raw)
To: qemu-devel
Cc: Alexey Kardashevskiy, Paolo Bonzini, KONRAD Frederic,
Philippe Mathieu-Daudé,
Peter Maydell
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
softmmu/memory.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/softmmu/memory.c b/softmmu/memory.c
index 3f4cd4e85d7..1a5b8a62eb9 100644
--- a/softmmu/memory.c
+++ b/softmmu/memory.c
@@ -1237,6 +1237,18 @@ static void memory_region_size_getter(Object *obj, Visitor *v,
visit_type_uint64(v, name, &value, errp);
}
+static void memory_region_size_setter(Object *obj, Visitor *v,
+ const char *name, void *opaque,
+ Error **errp)
+{
+ MemoryRegion *mr = MEMORY_REGION(obj);
+ uint64_t size;
+
+ if (visit_type_uint64(v, name, &size, errp)) {
+ memory_region_set_size(mr, size);
+ }
+}
+
static void memory_region_initfn(Object *obj)
{
MemoryRegion *mr = MEMORY_REGION(obj);
@@ -1264,7 +1276,7 @@ static void memory_region_initfn(Object *obj)
NULL, NULL);
object_property_add(OBJECT(mr), "size", "uint64",
memory_region_size_getter,
- NULL, /* memory_region_size_setter, */
+ memory_region_size_setter,
NULL, NULL);
}
--
2.26.2
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH-for-6.1 v3 5/5] memory: Add setter for MemoryRegion object 'priority' property
2021-03-27 14:34 [PATCH v3 0/5] memory: Add 'priority' property setter Philippe Mathieu-Daudé
` (3 preceding siblings ...)
2021-03-27 14:34 ` [PATCH-for-6.1 v3 4/5] memory: Add setter for MemoryRegion object 'size' property Philippe Mathieu-Daudé
@ 2021-03-27 14:34 ` Philippe Mathieu-Daudé
2021-03-27 16:58 ` [PATCH v3 0/5] memory: Add 'priority' property setter Peter Maydell
5 siblings, 0 replies; 9+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-03-27 14:34 UTC (permalink / raw)
To: qemu-devel
Cc: Alexey Kardashevskiy, Paolo Bonzini, KONRAD Frederic,
Philippe Mathieu-Daudé,
Peter Maydell
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
softmmu/memory.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/softmmu/memory.c b/softmmu/memory.c
index 1a5b8a62eb9..371e52b300e 100644
--- a/softmmu/memory.c
+++ b/softmmu/memory.c
@@ -1227,6 +1227,18 @@ static void memory_region_priority_getter(Object *obj, Visitor *v,
visit_type_int32(v, name, &value, errp);
}
+static void memory_region_priority_setter(Object *obj, Visitor *v,
+ const char *name, void *opaque,
+ Error **errp)
+{
+ MemoryRegion *mr = MEMORY_REGION(obj);
+ int32_t priority;
+
+ if (visit_type_int32(v, name, &priority, errp)) {
+ memory_region_set_priority(mr, priority);
+ }
+}
+
static void memory_region_size_getter(Object *obj, Visitor *v,
const char *name, void *opaque,
Error **errp)
@@ -1272,7 +1284,7 @@ static void memory_region_initfn(Object *obj)
&mr->addr, OBJ_PROP_FLAG_READ);
object_property_add(OBJECT(mr), "priority", "int32",
memory_region_priority_getter,
- NULL, /* memory_region_priority_setter */
+ memory_region_priority_setter,
NULL, NULL);
object_property_add(OBJECT(mr), "size", "uint64",
memory_region_size_getter,
--
2.26.2
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v3 0/5] memory: Add 'priority' property setter
2021-03-27 14:34 [PATCH v3 0/5] memory: Add 'priority' property setter Philippe Mathieu-Daudé
` (4 preceding siblings ...)
2021-03-27 14:34 ` [PATCH-for-6.1 v3 5/5] memory: Add setter for MemoryRegion object 'priority' property Philippe Mathieu-Daudé
@ 2021-03-27 16:58 ` Peter Maydell
2021-03-27 18:44 ` Philippe Mathieu-Daudé
5 siblings, 1 reply; 9+ messages in thread
From: Peter Maydell @ 2021-03-27 16:58 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: Alexey Kardashevskiy, Paolo Bonzini, KONRAD Frederic, QEMU Developers
On Sat, 27 Mar 2021 at 14:34, Philippe Mathieu-Daudé <f4bug@amsat.org> wrote:
>
> The first patch is an old fix, it would be nice to get it
> merged eventually, but not a problem during years, so can
> also wait 6.1.
>
> The second patch add the memory_region_set_priority() helper
> useful to memory controller devices.
>
> The rest add the 'size'/'priority' object setters.
Do you have a series which makes use of these new APIs?
thanks
-- PMM
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v3 0/5] memory: Add 'priority' property setter
2021-03-27 16:58 ` [PATCH v3 0/5] memory: Add 'priority' property setter Peter Maydell
@ 2021-03-27 18:44 ` Philippe Mathieu-Daudé
2021-03-27 19:43 ` Peter Maydell
0 siblings, 1 reply; 9+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-03-27 18:44 UTC (permalink / raw)
To: Peter Maydell
Cc: Alexey Kardashevskiy, Paolo Bonzini, KONRAD Frederic, QEMU Developers
On 3/27/21 5:58 PM, Peter Maydell wrote:
> On Sat, 27 Mar 2021 at 14:34, Philippe Mathieu-Daudé <f4bug@amsat.org> wrote:
>>
>> The first patch is an old fix, it would be nice to get it
>> merged eventually, but not a problem during years, so can
>> also wait 6.1.
>>
>> The second patch add the memory_region_set_priority() helper
>> useful to memory controller devices.
>>
>> The rest add the 'size'/'priority' object setters.
>
> Do you have a series which makes use of these new APIs?
Yes, new board / SoC, many patches, I'm trying to split to
have review because I don't expect many developers to review
a series adding 20+ devices... So far:
87 files changed, 8805 insertions(+), 97 deletions(-)
Part of them already posted:
- hw/misc: Add support for interleaved memory accesses
https://www.mail-archive.com/qemu-devel@nongnu.org/msg730721.html
- memory_region_add_subregion_aliased() helper
https://www.mail-archive.com/qemu-devel@nongnu.org/msg795414.html
I can send an omnibus series if you prefer.
Thanks,
Phil.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v3 0/5] memory: Add 'priority' property setter
2021-03-27 18:44 ` Philippe Mathieu-Daudé
@ 2021-03-27 19:43 ` Peter Maydell
0 siblings, 0 replies; 9+ messages in thread
From: Peter Maydell @ 2021-03-27 19:43 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: Alexey Kardashevskiy, Paolo Bonzini, KONRAD Frederic, QEMU Developers
On Sat, 27 Mar 2021 at 18:44, Philippe Mathieu-Daudé <f4bug@amsat.org> wrote:
>
> On 3/27/21 5:58 PM, Peter Maydell wrote:
> > On Sat, 27 Mar 2021 at 14:34, Philippe Mathieu-Daudé <f4bug@amsat.org> wrote:
> >>
> >> The first patch is an old fix, it would be nice to get it
> >> merged eventually, but not a problem during years, so can
> >> also wait 6.1.
> >>
> >> The second patch add the memory_region_set_priority() helper
> >> useful to memory controller devices.
> >>
> >> The rest add the 'size'/'priority' object setters.
> >
> > Do you have a series which makes use of these new APIs?
>
> Yes, new board / SoC, many patches, I'm trying to split to
> have review because I don't expect many developers to review
> a series adding 20+ devices...
> I can send an omnibus series if you prefer.
No, you don't need to send a series, but a brief description
of the kind of device that would want to be able to dynamically set
MR size and priority would be helpful, I think.
thanks
-- PMM
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2021-03-27 19:44 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-27 14:34 [PATCH v3 0/5] memory: Add 'priority' property setter Philippe Mathieu-Daudé
2021-03-27 14:34 ` [PATCH-for-6.0 v3 1/5] memory: Fix memory_region 'priority' property sign Philippe Mathieu-Daudé
2021-03-27 14:34 ` [PATCH-for-6.1 v3 2/5] memory: Add memory_region_set_priority() Philippe Mathieu-Daudé
2021-03-27 14:34 ` [PATCH-for-6.1 v3 3/5] memory: Rename MemoryRegion object getters Philippe Mathieu-Daudé
2021-03-27 14:34 ` [PATCH-for-6.1 v3 4/5] memory: Add setter for MemoryRegion object 'size' property Philippe Mathieu-Daudé
2021-03-27 14:34 ` [PATCH-for-6.1 v3 5/5] memory: Add setter for MemoryRegion object 'priority' property Philippe Mathieu-Daudé
2021-03-27 16:58 ` [PATCH v3 0/5] memory: Add 'priority' property setter Peter Maydell
2021-03-27 18:44 ` Philippe Mathieu-Daudé
2021-03-27 19:43 ` Peter Maydell
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.