* [Qemu-devel] [PATCH] tcg: remove softfloat from --disable-tcg builds
@ 2018-05-22 19:20 Paolo Bonzini
2018-05-22 19:26 ` no-reply
` (3 more replies)
0 siblings, 4 replies; 7+ messages in thread
From: Paolo Bonzini @ 2018-05-22 19:20 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth, david, qemu-trivial
Even though the presence of softfloat does not cause --disable-tcg builds to fail,
it is the single largest .o file in them. Remove it, since TCG is the only client.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
Makefile.target | 2 +-
hw/i386/x86-iommu-stub.c | 132 +++++++++++++++++++++++++++++++++++++++
2 files changed, 133 insertions(+), 1 deletion(-)
create mode 100644 hw/i386/x86-iommu-stub.c
diff --git a/Makefile.target b/Makefile.target
index d0ec77a307..dad2cf8778 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -97,7 +97,7 @@ obj-$(CONFIG_TCG) += tcg/tcg.o tcg/tcg-op.o tcg/tcg-op-vec.o tcg/tcg-op-gvec.o
obj-$(CONFIG_TCG) += tcg/tcg-common.o tcg/optimize.o
obj-$(CONFIG_TCG_INTERPRETER) += tcg/tci.o
obj-$(CONFIG_TCG_INTERPRETER) += disas/tci.o
-obj-y += fpu/softfloat.o
+obj-$(CONFIG_TCG) += fpu/softfloat.o
obj-y += target/$(TARGET_BASE_ARCH)/
obj-y += disas.o
obj-$(call notempty,$(TARGET_XML_FILES)) += gdbstub-xml.o
diff --git a/hw/i386/x86-iommu-stub.c b/hw/i386/x86-iommu-stub.c
new file mode 100644
index 0000000000..8a01a2dd25
--- /dev/null
+++ b/hw/i386/x86-iommu-stub.c
@@ -0,0 +1,132 @@
+/*
+ * QEMU emulation of common X86 IOMMU
+ *
+ * Copyright (C) 2016 Peter Xu, Red Hat <peterx@redhat.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "qemu/osdep.h"
+#include "hw/sysbus.h"
+#include "hw/boards.h"
+#include "hw/i386/x86-iommu.h"
+#include "hw/i386/pc.h"
+#include "qapi/error.h"
+#include "qemu/error-report.h"
+#include "trace.h"
+
+void x86_iommu_iec_register_notifier(X86IOMMUState *iommu,
+ iec_notify_fn fn, void *data)
+{
+ IEC_Notifier *notifier = g_new0(IEC_Notifier, 1);
+
+ notifier->iec_notify = fn;
+ notifier->private = data;
+
+ QLIST_INSERT_HEAD(&iommu->iec_notifiers, notifier, list);
+}
+
+void x86_iommu_iec_notify_all(X86IOMMUState *iommu, bool global,
+ uint32_t index, uint32_t mask)
+{
+ IEC_Notifier *notifier;
+
+ trace_x86_iommu_iec_notify(global, index, mask);
+
+ QLIST_FOREACH(notifier, &iommu->iec_notifiers, list) {
+ if (notifier->iec_notify) {
+ notifier->iec_notify(notifier->private, global,
+ index, mask);
+ }
+ }
+}
+
+/* Default X86 IOMMU device */
+static X86IOMMUState *x86_iommu_default = NULL;
+
+static void x86_iommu_set_default(X86IOMMUState *x86_iommu)
+{
+ assert(x86_iommu);
+
+ if (x86_iommu_default) {
+ error_report("QEMU does not support multiple vIOMMUs "
+ "for x86 yet.");
+ exit(1);
+ }
+
+ x86_iommu_default = x86_iommu;
+}
+
+X86IOMMUState *x86_iommu_get_default(void)
+{
+ return x86_iommu_default;
+}
+
+IommuType x86_iommu_get_type(void)
+{
+ return x86_iommu_default->type;
+}
+
+static void x86_iommu_realize(DeviceState *dev, Error **errp)
+{
+ X86IOMMUState *x86_iommu = X86_IOMMU_DEVICE(dev);
+ X86IOMMUClass *x86_class = X86_IOMMU_GET_CLASS(dev);
+ MachineState *ms = MACHINE(qdev_get_machine());
+ MachineClass *mc = MACHINE_GET_CLASS(ms);
+ PCMachineState *pcms =
+ PC_MACHINE(object_dynamic_cast(OBJECT(ms), TYPE_PC_MACHINE));
+ QLIST_INIT(&x86_iommu->iec_notifiers);
+
+ if (!pcms || !pcms->bus) {
+ error_setg(errp, "Machine-type '%s' not supported by IOMMU",
+ mc->name);
+ return;
+ }
+
+ if (x86_class->realize) {
+ x86_class->realize(dev, errp);
+ }
+
+ x86_iommu_set_default(X86_IOMMU_DEVICE(dev));
+}
+
+static Property x86_iommu_properties[] = {
+ DEFINE_PROP_BOOL("intremap", X86IOMMUState, intr_supported, false),
+ DEFINE_PROP_BOOL("device-iotlb", X86IOMMUState, dt_supported, false),
+ DEFINE_PROP_BOOL("pt", X86IOMMUState, pt_supported, true),
+ DEFINE_PROP_END_OF_LIST(),
+};
+
+static void x86_iommu_class_init(ObjectClass *klass, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(klass);
+ dc->realize = x86_iommu_realize;
+ dc->props = x86_iommu_properties;
+}
+
+static const TypeInfo x86_iommu_info = {
+ .name = TYPE_X86_IOMMU_DEVICE,
+ .parent = TYPE_SYS_BUS_DEVICE,
+ .instance_size = sizeof(X86IOMMUState),
+ .class_init = x86_iommu_class_init,
+ .class_size = sizeof(X86IOMMUClass),
+ .abstract = true,
+};
+
+static void x86_iommu_register_types(void)
+{
+ type_register_static(&x86_iommu_info);
+}
+
+type_init(x86_iommu_register_types)
--
2.17.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [PATCH] tcg: remove softfloat from --disable-tcg builds
2018-05-22 19:20 [Qemu-devel] [PATCH] tcg: remove softfloat from --disable-tcg builds Paolo Bonzini
@ 2018-05-22 19:26 ` no-reply
2018-05-22 19:27 ` Peter Maydell
` (2 subsequent siblings)
3 siblings, 0 replies; 7+ messages in thread
From: no-reply @ 2018-05-22 19:26 UTC (permalink / raw)
To: pbonzini; +Cc: famz, qemu-devel, qemu-trivial, thuth, david
Hi,
This series seems to have some coding style problems. See output below for
more information:
Type: series
Message-id: 20180522192034.13318-1-pbonzini@redhat.com
Subject: [Qemu-devel] [PATCH] tcg: remove softfloat from --disable-tcg builds
=== TEST SCRIPT BEGIN ===
#!/bin/bash
BASE=base
n=1
total=$(git log --oneline $BASE.. | wc -l)
failed=0
git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram
commits="$(git log --format=%H --reverse $BASE..)"
for c in $commits; do
echo "Checking PATCH $n/$total: $(git log -n 1 --format=%s $c)..."
if ! git show $c --format=email | ./scripts/checkpatch.pl --mailback -; then
failed=1
echo
fi
n=$((n+1))
done
exit $failed
=== TEST SCRIPT END ===
Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
* [new tag] patchew/20180522192034.13318-1-pbonzini@redhat.com -> patchew/20180522192034.13318-1-pbonzini@redhat.com
Switched to a new branch 'test'
2b374b4a9d tcg: remove softfloat from --disable-tcg builds
=== OUTPUT BEGIN ===
Checking PATCH 1/1: tcg: remove softfloat from --disable-tcg builds...
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#26:
new file mode 100644
ERROR: do not initialise statics to 0 or NULL
#86: FILE: hw/i386/x86-iommu-stub.c:56:
+static X86IOMMUState *x86_iommu_default = NULL;
total: 1 errors, 1 warnings, 140 lines checked
Your patch has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
=== OUTPUT END ===
Test command exited with code: 1
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [PATCH] tcg: remove softfloat from --disable-tcg builds
2018-05-22 19:20 [Qemu-devel] [PATCH] tcg: remove softfloat from --disable-tcg builds Paolo Bonzini
2018-05-22 19:26 ` no-reply
@ 2018-05-22 19:27 ` Peter Maydell
2018-05-22 22:07 ` Paolo Bonzini
2018-05-22 20:53 ` Richard Henderson
2018-05-23 4:34 ` Thomas Huth
3 siblings, 1 reply; 7+ messages in thread
From: Peter Maydell @ 2018-05-22 19:27 UTC (permalink / raw)
To: Paolo Bonzini
Cc: QEMU Developers, QEMU Trivial, Thomas Huth, David Hildenbrand
On 22 May 2018 at 20:20, Paolo Bonzini <pbonzini@redhat.com> wrote:
> Even though the presence of softfloat does not cause --disable-tcg builds to fail,
> it is the single largest .o file in them. Remove it, since TCG is the only client.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
> Makefile.target | 2 +-
> hw/i386/x86-iommu-stub.c | 132 +++++++++++++++++++++++++++++++++++++++
> 2 files changed, 133 insertions(+), 1 deletion(-)
> create mode 100644 hw/i386/x86-iommu-stub.c
Is this new x86-iommu-stub.c file intended to be in this patch?
thanks
-- PMM
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [PATCH] tcg: remove softfloat from --disable-tcg builds
2018-05-22 19:27 ` Peter Maydell
@ 2018-05-22 22:07 ` Paolo Bonzini
0 siblings, 0 replies; 7+ messages in thread
From: Paolo Bonzini @ 2018-05-22 22:07 UTC (permalink / raw)
To: Peter Maydell
Cc: QEMU Trivial, Thomas Huth, QEMU Developers, David Hildenbrand
On 22/05/2018 21:27, Peter Maydell wrote:
> On 22 May 2018 at 20:20, Paolo Bonzini <pbonzini@redhat.com> wrote:
>> Even though the presence of softfloat does not cause --disable-tcg builds to fail,
>> it is the single largest .o file in them. Remove it, since TCG is the only client.
>>
>> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
>> ---
>> Makefile.target | 2 +-
>> hw/i386/x86-iommu-stub.c | 132 +++++++++++++++++++++++++++++++++++++++
>> 2 files changed, 133 insertions(+), 1 deletion(-)
>> create mode 100644 hw/i386/x86-iommu-stub.c
>
> Is this new x86-iommu-stub.c file intended to be in this patch?
No, of course not. I probably fat fingered a "r" into "f" in git rebase
-i...
Paolo
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [PATCH] tcg: remove softfloat from --disable-tcg builds
2018-05-22 19:20 [Qemu-devel] [PATCH] tcg: remove softfloat from --disable-tcg builds Paolo Bonzini
2018-05-22 19:26 ` no-reply
2018-05-22 19:27 ` Peter Maydell
@ 2018-05-22 20:53 ` Richard Henderson
2018-05-22 22:06 ` Paolo Bonzini
2018-05-23 4:34 ` Thomas Huth
3 siblings, 1 reply; 7+ messages in thread
From: Richard Henderson @ 2018-05-22 20:53 UTC (permalink / raw)
To: Paolo Bonzini, qemu-devel; +Cc: qemu-trivial, thuth, david
On 05/22/2018 12:20 PM, Paolo Bonzini wrote:
> Even though the presence of softfloat does not cause --disable-tcg builds to fail,
> it is the single largest .o file in them. Remove it, since TCG is the only client.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
> Makefile.target | 2 +-
> hw/i386/x86-iommu-stub.c | 132 +++++++++++++++++++++++++++++++++++++++
Assuming this wasn't supposed to be here.
> 2 files changed, 133 insertions(+), 1 deletion(-)
> create mode 100644 hw/i386/x86-iommu-stub.c
>
> diff --git a/Makefile.target b/Makefile.target
> index d0ec77a307..dad2cf8778 100644
> --- a/Makefile.target
> +++ b/Makefile.target
> @@ -97,7 +97,7 @@ obj-$(CONFIG_TCG) += tcg/tcg.o tcg/tcg-op.o tcg/tcg-op-vec.o tcg/tcg-op-gvec.o
> obj-$(CONFIG_TCG) += tcg/tcg-common.o tcg/optimize.o
> obj-$(CONFIG_TCG_INTERPRETER) += tcg/tci.o
> obj-$(CONFIG_TCG_INTERPRETER) += disas/tci.o
> -obj-y += fpu/softfloat.o
> +obj-$(CONFIG_TCG) += fpu/softfloat.o
But for this change alone,
Acked-by: Richard Henderson <richard.henderson@linaro.org>
r~
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [PATCH] tcg: remove softfloat from --disable-tcg builds
2018-05-22 20:53 ` Richard Henderson
@ 2018-05-22 22:06 ` Paolo Bonzini
0 siblings, 0 replies; 7+ messages in thread
From: Paolo Bonzini @ 2018-05-22 22:06 UTC (permalink / raw)
To: Richard Henderson, qemu-devel; +Cc: qemu-trivial, thuth, david
On 22/05/2018 22:53, Richard Henderson wrote:
> On 05/22/2018 12:20 PM, Paolo Bonzini wrote:
>> Even though the presence of softfloat does not cause --disable-tcg builds to fail,
>> it is the single largest .o file in them. Remove it, since TCG is the only client.
>>
>> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
>> ---
>> Makefile.target | 2 +-
>> hw/i386/x86-iommu-stub.c | 132 +++++++++++++++++++++++++++++++++++++++
>
> Assuming this wasn't supposed to be here.
Oops, no it wasn't. Thanks for the quick review!
Paolo
>> 2 files changed, 133 insertions(+), 1 deletion(-)
>> create mode 100644 hw/i386/x86-iommu-stub.c
>>
>> diff --git a/Makefile.target b/Makefile.target
>> index d0ec77a307..dad2cf8778 100644
>> --- a/Makefile.target
>> +++ b/Makefile.target
>> @@ -97,7 +97,7 @@ obj-$(CONFIG_TCG) += tcg/tcg.o tcg/tcg-op.o tcg/tcg-op-vec.o tcg/tcg-op-gvec.o
>> obj-$(CONFIG_TCG) += tcg/tcg-common.o tcg/optimize.o
>> obj-$(CONFIG_TCG_INTERPRETER) += tcg/tci.o
>> obj-$(CONFIG_TCG_INTERPRETER) += disas/tci.o
>> -obj-y += fpu/softfloat.o
>> +obj-$(CONFIG_TCG) += fpu/softfloat.o
>
> But for this change alone,
> Acked-by: Richard Henderson <richard.henderson@linaro.org>
>
> r~
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [PATCH] tcg: remove softfloat from --disable-tcg builds
2018-05-22 19:20 [Qemu-devel] [PATCH] tcg: remove softfloat from --disable-tcg builds Paolo Bonzini
` (2 preceding siblings ...)
2018-05-22 20:53 ` Richard Henderson
@ 2018-05-23 4:34 ` Thomas Huth
3 siblings, 0 replies; 7+ messages in thread
From: Thomas Huth @ 2018-05-23 4:34 UTC (permalink / raw)
To: Paolo Bonzini, qemu-devel; +Cc: david, qemu-trivial
On 22.05.2018 21:20, Paolo Bonzini wrote:
> Even though the presence of softfloat does not cause --disable-tcg builds to fail,
> it is the single largest .o file in them. Remove it, since TCG is the only client.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
> Makefile.target | 2 +-
> hw/i386/x86-iommu-stub.c | 132 +++++++++++++++++++++++++++++++++++++++
> 2 files changed, 133 insertions(+), 1 deletion(-)
> create mode 100644 hw/i386/x86-iommu-stub.c
>
> diff --git a/Makefile.target b/Makefile.target
> index d0ec77a307..dad2cf8778 100644
> --- a/Makefile.target
> +++ b/Makefile.target
> @@ -97,7 +97,7 @@ obj-$(CONFIG_TCG) += tcg/tcg.o tcg/tcg-op.o tcg/tcg-op-vec.o tcg/tcg-op-gvec.o
> obj-$(CONFIG_TCG) += tcg/tcg-common.o tcg/optimize.o
> obj-$(CONFIG_TCG_INTERPRETER) += tcg/tci.o
> obj-$(CONFIG_TCG_INTERPRETER) += disas/tci.o
> -obj-y += fpu/softfloat.o
> +obj-$(CONFIG_TCG) += fpu/softfloat.o
> obj-y += target/$(TARGET_BASE_ARCH)/
> obj-y += disas.o
> obj-$(call notempty,$(TARGET_XML_FILES)) += gdbstub-xml.o
Without that x86-iommu-stub.c file:
Reviewed-by: Thomas Huth <thuth@redhat.com>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2018-05-23 4:34 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-05-22 19:20 [Qemu-devel] [PATCH] tcg: remove softfloat from --disable-tcg builds Paolo Bonzini
2018-05-22 19:26 ` no-reply
2018-05-22 19:27 ` Peter Maydell
2018-05-22 22:07 ` Paolo Bonzini
2018-05-22 20:53 ` Richard Henderson
2018-05-22 22:06 ` Paolo Bonzini
2018-05-23 4:34 ` Thomas Huth
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).