Transformation of the IR, identity mapping trivial expressions which
would amount to nothing more than a move when emitted as TCG, but is
required in LLVM IR to not break the IR.
Trivial expressions are mapped to a @IdentityMap pseudo instruction
allowing them to be dealt with in a uniform manner
Doubles amount of space allocated for translation blocks. This is
needed, particularly for Hexagon, where a single instruction packet may
consist of up to four vector instructions. If each vector instruction
then gets expanded into gvec operations that utilize a small host vector
size the TB blow
When producing LLVM IR using clang -O0, a noinline attribute is added.
Remove this attribute to not inhibit future optimization.
Signed-off-by: Anton Johansson
---
.../passes/PrepareForOptPass/PrepareForOptPass.cpp | 7 +++
1 file changed, 7 insertions(+)
diff --git
a/subprojects/h
Run a standard LLVM -Os optimization pass, which makes up the bulk of
optimizations in helper-to-tcg.
Signed-off-by: Anton Johansson
---
subprojects/helper-to-tcg/pipeline/Pipeline.cpp | 12
1 file changed, 12 insertions(+)
diff --git a/subprojects/helper-to-tcg/pipeline/Pipeline.c
Adds a new pass over the LLVM module which runs post-optimization with
the end-goal of:
* culling functions which aren't worth translating;
* canonicalizing the IR to something closer to TCG, and;
* extracting information which may be useful in the backend pass.
This commits sets up a new LL
getelementpointer (GEP) instructions in LLVM IR represent general pointer
arithmetic (struct field access, array indexing, ...). From the
perspective of TCG, three distinct cases are important and are
transformed into pseudo instructions respectively:
* struct accesses whose offset into the str
Adds necessary helper functions for mapping LLVM IR onto TCG.
Specifically, helpers corresponding to the bitreverse and funnel-shift
intrinsics in LLVM.
Note: these may be converted to more efficient implementations in the
future, but for the time being it allows helper-to-tcg to support a
wider s
Hi all, this patchset introduces helper-to-tcg, a LLVM based build-time
C to TCG translator, as a QEMU subproject. The purpose of this tool is
to simplify implementation of instructions in TCG by automatically
translating helper functions for a given target to TCG. It may also be
used as a standa
Temporary vectors in helper-to-tcg generated code are allocated from an
array of bytes in CPUArchState, specified with --temp-vector-block.
This commits adds such a block of memory to CPUArchState, if
CONFIG_HELPER_TO_TCG is set.
Signed-off-by: Anton Johansson
---
target/hexagon/cpu.h | 4
Signed-off-by: Anton Johansson
---
subprojects/helper-to-tcg/README.md | 265
1 file changed, 265 insertions(+)
create mode 100644 subprojects/helper-to-tcg/README.md
diff --git a/subprojects/helper-to-tcg/README.md
b/subprojects/helper-to-tcg/README.md
new file mo
Adds a function pointer to the TCGContext which may be set by targets via
the TARGET_HELPER_DISPATCHER macro. The dispatcher is function
(void *func, TCGTemp *ret, int nargs, TCGTemp **args) -> bool
which allows targets to hook the generation of helper calls in TCG and
take over translation.
Based on the assumption of a cycle free IR, this commit adds a simple
register allocator for emitted values in TCG. The goal of this pass is
to reduce the number of temporaries required in the output code, which
is especially important when dealing with gvec vectors as to not require
very large am
"pseudo" instructions makes it easy to add custom instructions to
LLVM IR in the form of calls to undefined functions. These will be used
in future commits to express functionality present in TCG that is missing
from LLVM IR (certain vector ops.), or to simplify the backend by
collecting similar i
QOL commit, all the various gen_* python scripts take a large set
arguments where order is implicit. Using argparse we also get decent
error messages if a field is missing or too many are added.
Signed-off-by: Anton Johansson
---
target/hexagon/gen_analyze_funcs.py | 6 +++--
target/hexago
Replaces previous calls to tcg_global_mem_new*() with a declarative
global array of cpu_mapping structs. This array can be used to
initialize all TCG globals with one function call from the target, and
may additionally be used from LLVM based tools to map between offsets
into a struct and a mapped
Makes sure gen_slotval() and check_noshuf() remains defined when
helper-to-tcg and idef-parser are both used. gen_slotval() is needed
for creating a TCGv of the slot value fed to helpers (generated
helper-to-tcg code), and check_noshuf() is needed for helper definitions
used as input to helper-to-
Adds a functions to return the current mmu index given tb_flags of the
current translation block. Required by helper-to-tcg in order to
retrieve the mmu index for memory operations without changing the
signature of helper functions.
Signed-off-by: Anton Johansson
---
target/hexagon/cpu.h | 12 +
Introduces simple end-to-end tests of helper-to-tcg of functions the
translator is expected to handle, any translation failure will result in
a test failure. More test cases to come.
Signed-off-by: Anton Johansson
---
subprojects/helper-to-tcg/meson.build | 2 +
subprojects/helper-to-
Iterates over the IR with the goal of converting it to a form closer to
TCG, taking care of IR disparencies between LLVM and TCG. This also
simplifies the backend by containing the bulk of custom IR
transformations, meaning the backend can be as dumb as possible.
Signed-off-by: Anton Johansson
-
In the LLVM IR module function annotations are stored in one big global
array of strings. Traverse this array and parse the data into a format
more useful for future passes. A map between Functions * and a list of
annotations is exposed.
Signed-off-by: Anton Johansson
---
.../include/FunctionA
Adds a meson option for enabling/disabling helper-to-tcg along with a
CONFIG_* definition.
CONFIG_* will in future commits be used to conditionally include the
helper-to-tcg subproject, and to remove unneeded code/memory when
helper-to-tcg is not in use.
Current meson option is limited to Hexagon
PHI nodes have no clear analogue in TCG, this commits converts them to
stack accesses using a built-in LLVM transformation.
Signed-off-by: Anton Johansson
---
.../PrepareForTcgPass/PrepareForTcgPass.cpp | 24 +++
1 file changed, 24 insertions(+)
diff --git
a/subprojects/helpe
Adds new functions to the gvec API for truncating, sign- or zero
extending vector elements. Currently implemented as helper functions,
these may be mapped onto host vector instructions in the future.
For the time being, allows translation of more complicated vector
instructions by helper-to-tcg.
Adds a cpu_mapping struct to describe, in a declarative fashion, the
mapping between fields in a struct, and a corresponding TCG global. As
such, tcg_global_mem_new() can be automatically called given an array of
cpu_mappings.
This change is not limited to helper-to-tcg, but will be required in
f
A new translation unit is added with the purpose of containing all code
which emits strings of TCG code. The idea is that maintainence of the
backend will be simpler if all "tcg_*(*)" strings are contained and
wrapped in functions.
Signed-off-by: Anton Johansson
---
.../helper-to-tcg/include/Cm
Adds a struct representing everything a LLVM value might map to in TCG,
this includes:
* TCGv (IrValue);
* TCGv_ptr (IrPtr);
* TCGv_env (IrEnv);
* TCGLabel (IrLabel);
* tcg_constant_*() (IrConst);
* 123123ull (IrImmediate);
* intptr_t gvec_vector (IrPtrToOffset).
NOTE: Patch is subj
Modifies meson.build to use helper-to-tcg for automatic translation of
helper functions. Any helper functions with the "helper-to-tcg"
attribute will be automatically translated to TCG.
Order of code generation is changed, and helper functions are always
generated first, for all instructions. He
Adds a new LLVM pass that runs early in the pipeline with the goal
of preparing the input module for optimization by doing some early
culling of functions and information gathering.
This commits sets up a new LLVM pass over the IR module and runs it from
the pipeline.
Signed-off-by: Anton Johanss
Adds a translation unit with the sole purpose of handling inter-LLVM
code changes. Instead of littering the code with #ifdefs, most of them
will be limited to llvm-compat.[cpp|h] and a saner compat::*() function
is exposed in its place.
Signed-off-by: Anton Johansson
---
subprojects/helper-to-t
Adds a backend pass, taking previously optimized and canonicalized LLVM
IR and for each function:
1. Runs the TcgV register allocator;
2. Iterates over instructions and calls appropriate functions in
TcgEmit.h to emit TCG code.
Signed-off-by: Anton Johansson
---
.../helper-to-tcg/incl
Adds the following LLVM_ANNOTATE attributes to helper functions generated
by Hexagon:
1. "helper-to-tcg", to specify that a given helper functions should be
translated, and;
2. "immediate: ..." to make sure immediate arguments to helper
functions remain immediates in the emitted TCG
Convert llvm.returnaddress arguments to cpu_[ld|st]*() to undef, causing
the LLVM optmizer to discard the intrinsics. Needed as
llvm.returnadress is not representable in TCG, and usually results from
usage of GETPC() in helper functions.
Signed-off-by: Anton Johansson
---
.../PrepareForOptPass/
Simple function for creating Expected<> with nice error messages.
Signed-off-by: Anton Johansson
---
subprojects/helper-to-tcg/include/Error.h | 40 +++
1 file changed, 40 insertions(+)
create mode 100644 subprojects/helper-to-tcg/include/Error.h
diff --git a/subprojects/he
Make an early pass over all functions in the input module and filter out
functions with:
1. Invalid return type;
2. No helper-to-tcg annotation.
Signed-off-by: Anton Johansson
---
.../helper-to-tcg/include/PrepareForOptPass.h | 7 +-
.../PrepareForOptPass/PrepareForOptPass.cpp | 93 ++
This commit adds a gvec function for copying data from constant array
given in C to a gvec intptr_t. For each element, a host store of
each constant is performed, this is not ideal and will inflate TBs for
large vectors.
Moreover, data will be copied during each run of the generated code
impactin
Only generate input functions to idef-parser for instructions which
failed to be translated by helper-to-tcg.
Signed-off-by: Anton Johansson
---
target/hexagon/gen_idef_parser_funcs.py | 6 ++
1 file changed, 6 insertions(+)
diff --git a/target/hexagon/gen_idef_parser_funcs.py
b/target/hex
Functions with cycles are removed for two primary reasons:
* as a simplifying assumption for register allocation which occurs down
the line, and;
* if a function contains cycles post-optimization neither unrolling or
loop vectorization were beneficial, and the function _might_ be
The input LLVM module may define an array of cpu_mapping structs,
describing the mapping between fields in a specified struct (usually
CPUArchState) and TCG globals.
Create a map between offsets into the specified struct and TCG globals
(name, size, number of elements, stride) by iterating over th
Adds a custom pipeline, similar to LLVM opt, with the goal of taking an
input LLVM IR module to an equivalent output .c file implementing
functions in TCG.
Initial LLVM boilerplate is added until the creation of a
ModulePassManager. A custom target derived from x64 is added, to ensure
consistent
For HVX instructions that were successfully translated by helper-to-tcg,
emit calls to emit_*() "manually" from generate_*(). Recall that scalar
instructions translated by helper-to-tcg are automatically called by a
hook in tcg_gen_callN.
Signed-off-by: Anton Johansson
---
target/hexagon/gen_tc
Introduces a new python helper script to convert a set of QEMU .c files to
LLVM IR .ll using clang. Compile flags are found by looking at
compile_commands.json, and llvm-link is used to link together all LLVM
modules into a single module.
Signed-off-by: Anton Johansson
---
subprojects/helper-to
Sets up a barebones meson.build that handles:
1. Exposing command for converting .c files to LLVM IR by looking at
compile_commads.json;
2. Finding LLVM and verifying the LLVM version manually by running
llvm-config, needed for dealing with multiple LLVM versions in a
sane way;
Wrap __attribute__((annotate(str))) in a macro for convenient
function annotations. Will be used in future commits to tag functions
for translation by helper-to-tcg, and to specify which helper function
arguments correspond to immediate or vector values.
Signed-off-by: Anton Johansson
---
inclu
Daniel P. Berrangé writes:
> Historical bugs in avocado related to zstd support are not relevant to
> the code now that it uses QEMU's native test harness.
>
> Signed-off-by: Daniel P. Berrangé
Reviewed-by: Alex Bennée
--
Alex Bennée
Virtualisation Tech Lead @ Linaro
If pointer arguments to HVX helper functions are not marked restrict *,
then LLVM will assume that input vectors may alias and emit runtime
checks.
Signed-off-by: Anton Johansson
---
target/hexagon/mmvec/macros.h | 36 +--
1 file changed, 18 insertions(+), 18 dele
On 11/19/24 02:54, Peter Maydell wrote:
On Tue, 19 Nov 2024 at 10:09, Peter Maydell wrote:
On Mon, 18 Nov 2024 at 23:33, Pierrick Bouvier wrote:
8.4:
- FEAT_CNTSC, Generic Counter Scaling (hw/timer/sse-counter.c)
This is optional, and we don't implement it yet. (There's an
open ticket for i
On Fri, Nov 01, 2024 at 06:35:23PM +, Shameerali Kolothum Thodi wrote:
> I have a bare minimum prototype code that works with a pluggable smmuv3.
>
> ...
> -device pxb-pcie,id=pcie.1,bus_nr=2,bus=pcie.0 \
> -device pcie-root-port,id=pcie.port1,bus=pcie.1 \
> -device arm-smmuv3-nested,id=smmuv1,
On 11/19/24 09:14, Peter Maydell wrote:
On Tue, 19 Nov 2024 at 16:52, Pierrick Bouvier
wrote:
On 11/19/24 02:09, Peter Maydell wrote:
On Mon, 18 Nov 2024 at 23:33, Pierrick Bouvier
wrote:
I'm currently reviewing the QEMU Arm documentation, and I have a
question about the status of following
On 11/19/2024 3:16 PM, Peter Xu wrote:
On Tue, Nov 19, 2024 at 02:50:40PM -0500, Steven Sistare wrote:
On 11/14/2024 2:04 PM, Peter Xu wrote:
On Thu, Nov 14, 2024 at 01:36:00PM -0500, Steven Sistare wrote:
On 11/13/2024 4:58 PM, Peter Xu wrote:
On Fri, Nov 01, 2024 at 06:47:50AM -0700, Steve
QEMU will start to not rely on implicit creations of containers soon. Make
PPC drc devices follow by explicitly create the container whenever a drc
device is realized, dropping container_get() calls.
No functional change intended.
Cc: Nicholas Piggin
Cc: Daniel Henrique Barboza
Cc: Harsh Prate
Drop one use of container_get(), instead switch to the explicit function to
create a container.
Signed-off-by: Peter Xu
---
tests/unit/check-qom-proplist.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/unit/check-qom-proplist.c b/tests/unit/check-qom-proplist.c
index
Always explicitly create QEMU system containers upfront.
Root containers will be created when trying to fetch the root object the
1st time. Machine sub-containers will be created only until machine is
being initialized.
Signed-off-by: Peter Xu
---
hw/core/machine.c | 19 ---
qo
To move towards explicit creations of containers, starting that by
providing a helper for creating container objects.
Signed-off-by: Peter Xu
---
include/qom/object.h | 12
qom/container.c | 18 +++---
2 files changed, 27 insertions(+), 3 deletions(-)
diff --git a/
The following changes since commit e6459afb1ff4d86b361b14f4a2fc43f0d2b4d679:
Merge tag 'pull-target-arm-20241119' of
https://git.linaro.org/people/pmaydell/qemu-arm into staging (2024-11-19
14:23:34 +)
are available in the Git repository at:
https://github.com/legoater/qemu/ tags/pull-
On 11/19/24 01:24, Daniel P. Berrangé wrote:
On Mon, Nov 18, 2024 at 09:23:54AM -0800, Pierrick Bouvier wrote:
MacOS and Linux are straightforward, but Windows needs a bit more
details.
Signed-off-by: Pierrick Bouvier
---
docs/about/build-platforms.rst | 4 +-
docs/devel/build-environme
Add a helper to fetch a root container (under object_get_root()). Sanity
check on the type of the object.
Signed-off-by: Peter Xu
---
include/qom/object.h | 10 ++
qom/object.c | 10 ++
2 files changed, 20 insertions(+)
diff --git a/include/qom/object.h b/include/qom/ob
On 11/11/24 09:02, Richard Henderson wrote:
On 11/11/24 06:59, Richard Henderson wrote:
On 10/23/24 16:47, J. Neuschäfer wrote:
This aligns with strace, and is very useful when tracing multi-threaded
programs. The result is the same in single-threaded programs.
See also "-D log.%d -d tid -str
On 11/19/24 01:04, Daniel P. Berrangé wrote:
On Mon, Nov 18, 2024 at 09:23:52AM -0800, Pierrick Bouvier wrote:
Signed-off-by: Pierrick Bouvier
---
docs/devel/submitting-a-patch.rst | 14 ++
1 file changed, 14 insertions(+)
diff --git a/docs/devel/submitting-a-patch.rst
b/docs/d
On Mon, Nov 18, 2024 at 06:59:53PM +0100, Eric Auger wrote:
> Looking at your branch I see the following series (marked with cover-letter)
..
> cover-letter: Add RMR WAR for MSI mappings (based on former RMR flat
> mapping and not related to *[PATCH RFCv1 0/7] vfio: Allow userspace
> to
On 11/20/24 12:49, Philippe Mathieu-Daudé wrote:
When building QEMU configure with --disable-gtk --disable-cocoa
on macOS we get:
../system/main.c:30:10: fatal error: 'SDL.h' file not found
30 | #include
| ^~~
1 error generated.
Fix by adding the SDL dependenc
On Tue, Nov 12, 2024 at 5:53 AM Daniel Henrique Barboza
wrote:
>
>
>
> On 11/8/24 4:04 AM, Jim Shu wrote:
> > Larger initrd image will overlap the DTB at 3GB address. Since 64-bit
> > system doesn't have 32-bit addressable issue, we just load DTB to the end
> > of dram in 64-bit system.
> >
> > Si
> On 22 Oct 2024, at 15:58, Atish Kumar Patra wrote:
>
> On Mon, Oct 21, 2024 at 6:45 AM Aleksei Filippov
> wrote:
>>
>>
>>
>>> On 11 Oct 2024, at 23:45, Atish Kumar Patra wrote:
>>>
>>> On Thu, Oct 10, 2024 at 5:44 AM Alexei Filippov
>>> wrote:
On 10.10.2024 02:0
Add a new struct RISCVBootInfo to sync boot information between multiple
boot functions.
Signed-off-by: Jim Shu
---
hw/riscv/boot.c| 65 ++
hw/riscv/microchip_pfsoc.c | 11 ---
hw/riscv/opentitan.c | 4 ++-
hw/riscv/sifive_e.c|
On 11/19/24 09:34, Paolo Bonzini wrote:
Queued, thanks.
Paolo
Thanks for pulling it Paolo.
On Wed, 13 Nov 2024 09:37:02 +0100
Mauro Carvalho Chehab wrote:
> The GHES migration logic at GED should now support HEST table
> location too.
>
> Increase migration version and change needed to check for both
> ghes_addr_le and hest_addr_le.
Where is the migration version increased? Maybe I'
On 11/19/24 15:11, Ilya Leoshkevich wrote:
print_mmap() assumes that mmap() receives arguments via memory if
mmap2() is present. s390x (as opposed to s390) does not fit this
pattern: it does not have mmap2(), but mmap() still receives arguments
via memory.
Fix by special-casing s390x.
Cc: qemu-
print_mmap() assumes that mmap() receives arguments via memory if
mmap2() is present. s390x (as opposed to s390) does not fit this
pattern: it does not have mmap2(), but mmap() still receives arguments
via memory.
Fix by sharing the detection logic between syscall.c and strace.c.
Cc: qemu-sta...@
container_get() is going to become strict on not allowing to return a
non-container.
Switch the e500 user to use object_resolve_path_component() explicitly.
Cc: Bharat Bhushan
Cc: qemu-...@nongnu.org
Signed-off-by: Peter Xu
---
hw/pci-host/ppce500.c | 4 ++--
1 file changed, 2 insertions(+), 2
Now we should be ready to always create containers upfront, meanwhile we
have explicit helpers to fetch either:
- Root containers (object_get_container()), or
- Machine containers (machine_get_container()).
Change all rest container_get() users to use the explicit & fast version of
container
test-qdev-global-props creates a few subprocesses and test things based on
qdev realize(). One thing was overlooked since the start, that anonymous
creations of qdev (then realize() the device) requires the machine object's
presence, as all these devices need to be attached to QOM tree, by default
Currently, qdev_get_machine() has a slight misuse on container_get(), as
the helper says "get a container" but in reality the goal is to get the
machine object. It is still a "container" but not strictly.
Note that it _may_ get a container (at "/machine") in our current unit test
of test-qdev-glo
Provide a macro for the container type across QEMU source tree, rather than
hard code it every time.
Signed-off-by: Peter Xu
---
include/qom/object.h | 1 +
hw/arm/stellaris.c | 2 +-
qom/container.c | 4 ++--
qom/object.c | 4 ++--
4 files changed, 6 insertions(+), 5 deletions(-)
Follow the trend to explicitly create containers, do that for console.c on
"/backend" container.
Cc: Marc-André Lureau
Signed-off-by: Peter Xu
---
ui/console.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/ui/console.c b/ui/console.c
index 5165f17125..36f8c6debb 100644
This series is not for 9.2, but for 10.0. It is intended to replace this
previous patchset:
[PATCH 0/5] QOM: Enforce container_get() to operate on containers only
https://lore.kernel.org/r/20241118221330.3480246-1-pet...@redhat.com
Since it's a different patchset, the versioning starts from
Add a helper to fetch machine containers. Add some sanity check around.
Signed-off-by: Peter Xu
---
include/hw/qdev-core.h | 10 ++
hw/core/qdev.c | 17 +
2 files changed, 27 insertions(+)
diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h
index 5be984
On 11/19/24 01:29, Daniel P. Berrangé wrote:
On Mon, Nov 18, 2024 at 09:23:57AM -0800, Pierrick Bouvier wrote:
Signed-off-by: Pierrick Bouvier
---
docs/devel/build-system.rst | 2 +
docs/how-to/index.rst | 146
docs/index.rst | 1 +
"hw/s390x/ipl/qipl.h" defines loadparm[] length as LOADPARM_LEN,
use that instead of the magic '8' value. Use a char type for
char buffer.
Signed-off-by: Philippe Mathieu-Daudé
---
hw/s390x/ccw-device.h | 5 +++--
hw/s390x/ipl.h | 2 +-
include/hw/qdev-properti
Coverity reported a 1 byte overrun in scsi_property_set_loadparm
(CID 15657462). Since loadparam[] length is known, simply directly
allocate it in the device state.
Fixes: 429442e52d ("hw: Add 'loadparm' property to scsi disk devices")
Signed-off-by: Philippe Mathieu-Daudé
---
hw/scsi/scsi-disk.
Replace magic 8 by proper LOADPARM_LEN definition,
use array of char, allocate loadparam[] within qdev
state, fixing Coverity overrun report (CID 1565746).
Philippe Mathieu-Daudé (2):
hw/s390x: Declare loadparm as char[LOADPARM_LEN]
hw/scsi/scsi-disk: Avoid buffer overrun parsing 'loadparam'
On Wed, Nov 20, 2024 at 09:51:27AM +, Alex Bennée wrote:
>
> I still send pull requests by hand:
>
> git send-email --confirm=never --quiet ${mailto} ${series}.pull/*
>
> but thats probably because I haven't figured out the steps for git
> publish to do that.
A one-time setup task is to t
Il mar 19 nov 2024, 22:43 Peter Xu ha scritto:
> > The easiest way to check is probably to print the type of every
> successful
> > object_dynamic_cast and object_class_dynamic_cast. I suspect the result
> > will be virtio-blk-device and/or scsi-hd, but maybe those already do an
> > unsafe cast (
When building QEMU configure with --disable-gtk --disable-cocoa
on macOS we get:
../system/main.c:30:10: fatal error: 'SDL.h' file not found
30 | #include
| ^~~
1 error generated.
Fix by adding the SDL dependency to main.c it's CFLAGS contains
the SDL include direct
On 20/11/24 12:49, Philippe Mathieu-Daudé wrote:
When building QEMU configure with --disable-gtk --disable-cocoa
on macOS we get:
Relevant ./configure output:
User interface
Cocoa support : NO
SDL support : YES 2.30.5
SDL image support
The missing directory separator resulted in the kernel file being
created 1 level higher than expected.
Signed-off-by: Daniel P. Berrangé
---
tests/functional/test_mips64el_malta.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/functional/test_mips64el_malta.py
b/tes
Daniel P. Berrangé writes:
> The missing directory separator resulted in the kernel file being
> created 1 level higher than expected.
>
> Signed-off-by: Daniel P. Berrangé
Reviewed-by: Alex Bennée
--
Alex Bennée
Virtualisation Tech Lead @ Linaro
We expect all new code to be contributed with the "GPL-2.0-or-later"
license tag. Divergance is permitted if the new file is derived from
pre-existing code under a different license, whether from elsewhere
in QEMU codebase, or outside.
Issue a warning if the declared license is not "GPL-2.0-or-lat
Hi Alistair,
Thanks for Review. I will address below comments in V4.
Regards,
Sai Pavan
>-Original Message-
>From: Alistair Francis
>Sent: Monday, November 18, 2024 11:37 AM
>To: Boddu, Sai Pavan
>Cc: qemu-devel@nongnu.org; qemu-ri...@nongnu.org; Paolo Bonzini
>; Palmer Dabbelt ; Bin M
On 20/11/24 10:20, Kevin Wolf wrote:
Am 20.11.2024 um 09:53 hat Philippe Mathieu-Daudé geschrieben:
Coverity reported a 1 byte overrun in scsi_property_set_loadparm
(CID 15657462). Since loadparam[] length is known, simply directly
allocate it in the device state.
Fixes: 429442e52d ("hw: Add 'l
On 25/9/24 13:04, Peter Maydell wrote:
On Tue, 24 Sept 2024 at 20:19, Philippe Mathieu-Daudé wrote:
Per the Armv7-M Architecture Reference Manual (ARM DDI 0403E):
The System Control Space (SCS, address range 0xE000E000 to
0xE000EFFF) is a memory-mapped 4KB address space that provides
Hi all,
Just a quick reminder about the patchset I sent a while
back for the `mux-be-id` property. I’d really like to move
forward with the mux-be implementation, but I’m still not
sure what the best approach would be. Any feedback and
comments would be appreciated.
Thanks.
--
Roman
On Wed, Oct
The following changes since commit e6459afb1ff4d86b361b14f4a2fc43f0d2b4d679:
Merge tag 'pull-target-arm-20241119' of
https://git.linaro.org/people/pmaydell/qemu-arm into staging (2024-11-19
14:23:34 +)
are available in the Git repository at:
https://repo.or.cz/qemu/kevin.git tags/for-u
On Tue, Nov 19, 2024 at 03:32:55PM -0500, Steven Sistare wrote:
> On 11/19/2024 3:16 PM, Peter Xu wrote:
> > On Tue, Nov 19, 2024 at 02:50:40PM -0500, Steven Sistare wrote:
> > > On 11/14/2024 2:04 PM, Peter Xu wrote:
> > > > On Thu, Nov 14, 2024 at 01:36:00PM -0500, Steven Sistare wrote:
> > > > >
Am 20.11.2024 um 09:53 hat Philippe Mathieu-Daudé geschrieben:
> Coverity reported a 1 byte overrun in scsi_property_set_loadparm
> (CID 15657462). Since loadparam[] length is known, simply directly
> allocate it in the device state.
>
> Fixes: 429442e52d ("hw: Add 'loadparm' property to scsi disk
On 20/11/24 10:10, Paolo Bonzini wrote:
On 11/20/24 09:53, Philippe Mathieu-Daudé wrote:
@@ -112,7 +113,7 @@ struct SCSIDiskState {
char *vendor;
char *product;
char *device_id;
- char *loadparm; /* only for s390x */
+ char loadparm[LOADPARM_LEN]; /* only for s390x */
Pierrick Bouvier writes:
> On 11/19/24 00:41, Marcin Juszkiewicz wrote:
>> W dniu 18.11.2024 o 18:23, Pierrick Bouvier pisze:
>>> Signed-off-by: Pierrick Bouvier
>>> ---
>>>docs/devel/submitting-a-patch.rst | 14 ++
>>>1 file changed, 14 insertions(+)
>>>
>>> diff --git a/docs
On Tue, 19 Nov 2024 at 21:26, Cédric Le Goater wrote:
>
> The following changes since commit e6459afb1ff4d86b361b14f4a2fc43f0d2b4d679:
>
> Merge tag 'pull-target-arm-20241119' of
> https://git.linaro.org/people/pmaydell/qemu-arm into staging (2024-11-19
> 14:23:34 +)
>
> are available in t
On Wed, 20 Nov 2024 at 07:28, Paolo Bonzini wrote:
>
> The following changes since commit e6459afb1ff4d86b361b14f4a2fc43f0d2b4d679:
>
> Merge tag 'pull-target-arm-20241119' of
> https://git.linaro.org/people/pmaydell/qemu-arm into staging (2024-11-19
> 14:23:34 +)
>
> are available in the
On 11/20/24 09:53, Philippe Mathieu-Daudé wrote:
@@ -112,7 +113,7 @@ struct SCSIDiskState {
char *vendor;
char *product;
char *device_id;
-char *loadparm; /* only for s390x */
+char loadparm[LOADPARM_LEN]; /* only for s390x */
You would need a +1 here because of
s
On Wed, 20 Nov 2024 at 10:52, Kevin Wolf wrote:
>
> The following changes since commit e6459afb1ff4d86b361b14f4a2fc43f0d2b4d679:
>
> Merge tag 'pull-target-arm-20241119' of
> https://git.linaro.org/people/pmaydell/qemu-arm into staging (2024-11-19
> 14:23:34 +)
>
> are available in the Git
From: Zhao Liu
In the loop checking smp cache support, the error message should report
the current cache level and type.
Fix the parameter of error_setg() to ensure it reports the correct cache
level and type.
Resolves: Coverity CID 1565391
Fixes: f35c0221fef8 ("hw/core: Check smp cache topolog
1 - 100 of 138 matches
Mail list logo