All of lore.kernel.org
 help / color / mirror / Atom feed
* [PULL 0/5] Misc patches
@ 2021-09-14 13:01 marcandre.lureau
  2021-09-14 13:01 ` [PULL 1/5] docs: add supported host CPU architectures section marcandre.lureau
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: marcandre.lureau @ 2021-09-14 13:01 UTC (permalink / raw)
  To: qemu-devel; +Cc: peter.maydell, Marc-André Lureau

From: Marc-André Lureau <marcandre.lureau@redhat.com>

The following changes since commit c6f5e042d89e79206cd1ce5525d3df219f13c3cc:

  Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20210913-3' into staging (2021-09-13 21:06:15 +0100)

are available in the Git repository at:

  git@gitlab.com:marcandre.lureau/qemu.git tags/misc-pull-request

for you to fetch changes up to 78e3e1d046e64b86e8c9bf3011d5a2a795b5e373:

  chardev: add some comments about the class methods (2021-09-14 16:57:11 +0400)

----------------------------------------------------------------
chardev & doc misc

----------------------------------------------------------------

Marc-André Lureau (4):
  docs: add supported host CPU architectures section
  meson.build: fix comment typo
  chardev: remove needless class method
  chardev: add some comments about the class methods

Michal Privoznik (1):
  chardev: Propagate error from logfile opening

 docs/about/build-platforms.rst | 33 +++++++++++++++++++++++++++++++++
 docs/about/deprecated.rst      |  2 ++
 meson.build                    |  2 +-
 include/chardev/char.h         | 34 +++++++++++++++++++++++++++++++++-
 chardev/char-mux.c             |  6 ++----
 chardev/char.c                 |  7 ++-----
 6 files changed, 73 insertions(+), 11 deletions(-)

-- 
2.33.0.113.g6c40894d24




^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PULL 1/5] docs: add supported host CPU architectures section
  2021-09-14 13:01 [PULL 0/5] Misc patches marcandre.lureau
@ 2021-09-14 13:01 ` marcandre.lureau
  2021-09-14 13:01 ` [PULL 2/5] meson.build: fix comment typo marcandre.lureau
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: marcandre.lureau @ 2021-09-14 13:01 UTC (permalink / raw)
  To: qemu-devel; +Cc: peter.maydell, Marc-André Lureau

From: Marc-André Lureau <marcandre.lureau@redhat.com>

I was looking for such documentation, but couldn't find it. Add it to
the build-platform.rst document.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
---
 docs/about/build-platforms.rst | 33 +++++++++++++++++++++++++++++++++
 docs/about/deprecated.rst      |  2 ++
 2 files changed, 35 insertions(+)

diff --git a/docs/about/build-platforms.rst b/docs/about/build-platforms.rst
index 692323609e..bcb1549721 100644
--- a/docs/about/build-platforms.rst
+++ b/docs/about/build-platforms.rst
@@ -29,6 +29,39 @@ The `Repology`_ site is a useful resource to identify
 currently shipped versions of software in various operating systems,
 though it does not cover all distros listed below.
 
+Supported host architectures
+----------------------------
+
+Those hosts are officially supported, with various accelerators:
+
+  .. list-table::
+   :header-rows: 1
+
+   * - CPU Architecture
+     - Accelerators
+   * - Arm
+     - kvm (64 bit only), tcg, xen
+   * - MIPS
+     - kvm, tcg
+   * - PPC
+     - kvm, tcg
+   * - RISC-V
+     - tcg
+   * - s390x
+     - kvm, tcg
+   * - SPARC
+     - tcg
+   * - x86
+     - hax, hvf (64 bit only), kvm, nvmm, tcg, whpx (64 bit only), xen
+
+Other host architectures are not supported. It is possible to build QEMU on an
+unsupported host architecture using the configure ``--enable-tcg-interpreter``
+option to enable the experimental TCI support, but note that this is very slow
+and is not recommended.
+
+Non-supported architectures may be removed in the future following the
+:ref:`deprecation process<Deprecated features>`.
+
 Linux OS, macOS, FreeBSD, NetBSD, OpenBSD
 -----------------------------------------
 
diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index 9ee355ec0b..3c2be84d80 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -1,3 +1,5 @@
+.. _Deprecated features:
+
 Deprecated features
 ===================
 
-- 
2.33.0.113.g6c40894d24



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PULL 2/5] meson.build: fix comment typo
  2021-09-14 13:01 [PULL 0/5] Misc patches marcandre.lureau
  2021-09-14 13:01 ` [PULL 1/5] docs: add supported host CPU architectures section marcandre.lureau
@ 2021-09-14 13:01 ` marcandre.lureau
  2021-09-14 13:01 ` [PULL 3/5] chardev: Propagate error from logfile opening marcandre.lureau
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: marcandre.lureau @ 2021-09-14 13:01 UTC (permalink / raw)
  To: qemu-devel; +Cc: peter.maydell, Marc-André Lureau

From: Marc-André Lureau <marcandre.lureau@redhat.com>

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
---
 meson.build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meson.build b/meson.build
index 7d7d14a4bc..2711cbb789 100644
--- a/meson.build
+++ b/meson.build
@@ -78,7 +78,7 @@ endif
 
 accelerator_targets = { 'CONFIG_KVM': kvm_targets }
 if cpu in ['x86', 'x86_64', 'arm', 'aarch64']
-  # i368 emulator provides xenpv machine type for multiple architectures
+  # i386 emulator provides xenpv machine type for multiple architectures
   accelerator_targets += {
     'CONFIG_XEN': ['i386-softmmu', 'x86_64-softmmu'],
   }
-- 
2.33.0.113.g6c40894d24



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PULL 3/5] chardev: Propagate error from logfile opening
  2021-09-14 13:01 [PULL 0/5] Misc patches marcandre.lureau
  2021-09-14 13:01 ` [PULL 1/5] docs: add supported host CPU architectures section marcandre.lureau
  2021-09-14 13:01 ` [PULL 2/5] meson.build: fix comment typo marcandre.lureau
@ 2021-09-14 13:01 ` marcandre.lureau
  2021-09-14 13:01 ` [PULL 4/5] chardev: remove needless class method marcandre.lureau
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: marcandre.lureau @ 2021-09-14 13:01 UTC (permalink / raw)
  To: qemu-devel; +Cc: peter.maydell, Michal Privoznik

From: Michal Privoznik <mprivozn@redhat.com>

If a chardev has a logfile the file is opened using
qemu_open_old() which does the job, but since @errp is not
propagated into qemu_open_internal() we lose much more accurate
error and just report "Unable to open logfile $errno".  When
using plain files, it's probably okay as nothing complex is
happening behind the curtains. But the problem becomes more
prominent when passing an "/dev/fdset/XXX" path since much more
needs to be done.

The fix is to use qemu_create() which passes @errp further down.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <f34ee80866e6f591bcb98401dee27682f5543fca.1629190206.git.mprivozn@redhat.com>
---
 chardev/char.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/chardev/char.c b/chardev/char.c
index 4595a8d430..0169d8dde4 100644
--- a/chardev/char.c
+++ b/chardev/char.c
@@ -241,18 +241,15 @@ static void qemu_char_open(Chardev *chr, ChardevBackend *backend,
     ChardevCommon *common = backend ? backend->u.null.data : NULL;
 
     if (common && common->has_logfile) {
-        int flags = O_WRONLY | O_CREAT;
+        int flags = O_WRONLY;
         if (common->has_logappend &&
             common->logappend) {
             flags |= O_APPEND;
         } else {
             flags |= O_TRUNC;
         }
-        chr->logfd = qemu_open_old(common->logfile, flags, 0666);
+        chr->logfd = qemu_create(common->logfile, flags, 0666, errp);
         if (chr->logfd < 0) {
-            error_setg_errno(errp, errno,
-                             "Unable to open logfile %s",
-                             common->logfile);
             return;
         }
     }
-- 
2.33.0.113.g6c40894d24



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PULL 4/5] chardev: remove needless class method
  2021-09-14 13:01 [PULL 0/5] Misc patches marcandre.lureau
                   ` (2 preceding siblings ...)
  2021-09-14 13:01 ` [PULL 3/5] chardev: Propagate error from logfile opening marcandre.lureau
@ 2021-09-14 13:01 ` marcandre.lureau
  2021-09-14 13:01 ` [PULL 5/5] chardev: add some comments about the class methods marcandre.lureau
  2021-09-14 19:10 ` [PULL 0/5] Misc patches Peter Maydell
  5 siblings, 0 replies; 7+ messages in thread
From: marcandre.lureau @ 2021-09-14 13:01 UTC (permalink / raw)
  To: qemu-devel; +Cc: peter.maydell, Marc-André Lureau

From: Marc-André Lureau <marcandre.lureau@redhat.com>

"chr_option_parsed" is only implemented by the "mux" chardev, we can
specialize the code there to avoid the needless generic class method.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
 include/chardev/char.h | 1 -
 chardev/char-mux.c     | 6 ++----
 2 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/include/chardev/char.h b/include/chardev/char.h
index 7c0444f90d..589e7fe46d 100644
--- a/include/chardev/char.h
+++ b/include/chardev/char.h
@@ -273,7 +273,6 @@ struct ChardevClass {
     void (*chr_set_echo)(Chardev *chr, bool echo);
     void (*chr_set_fe_open)(Chardev *chr, int fe_open);
     void (*chr_be_event)(Chardev *s, QEMUChrEvent event);
-    void (*chr_options_parsed)(Chardev *chr);
 };
 
 Chardev *qemu_chardev_new(const char *id, const char *typename,
diff --git a/chardev/char-mux.c b/chardev/char-mux.c
index 5baf419010..ada0c6866f 100644
--- a/chardev/char-mux.c
+++ b/chardev/char-mux.c
@@ -386,10 +386,9 @@ void suspend_mux_open(void)
 static int chardev_options_parsed_cb(Object *child, void *opaque)
 {
     Chardev *chr = (Chardev *)child;
-    ChardevClass *class = CHARDEV_GET_CLASS(chr);
 
-    if (!chr->be_open && class->chr_options_parsed) {
-        class->chr_options_parsed(chr);
+    if (!chr->be_open && CHARDEV_IS_MUX(chr)) {
+        open_muxes(chr);
     }
 
     return 0;
@@ -412,7 +411,6 @@ static void char_mux_class_init(ObjectClass *oc, void *data)
     cc->chr_accept_input = mux_chr_accept_input;
     cc->chr_add_watch = mux_chr_add_watch;
     cc->chr_be_event = mux_chr_be_event;
-    cc->chr_options_parsed = open_muxes;
     cc->chr_update_read_handler = mux_chr_update_read_handlers;
 }
 
-- 
2.33.0.113.g6c40894d24



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PULL 5/5] chardev: add some comments about the class methods
  2021-09-14 13:01 [PULL 0/5] Misc patches marcandre.lureau
                   ` (3 preceding siblings ...)
  2021-09-14 13:01 ` [PULL 4/5] chardev: remove needless class method marcandre.lureau
@ 2021-09-14 13:01 ` marcandre.lureau
  2021-09-14 19:10 ` [PULL 0/5] Misc patches Peter Maydell
  5 siblings, 0 replies; 7+ messages in thread
From: marcandre.lureau @ 2021-09-14 13:01 UTC (permalink / raw)
  To: qemu-devel; +Cc: peter.maydell, Marc-André Lureau

From: Marc-André Lureau <marcandre.lureau@redhat.com>

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <20210804154848.557328-5-marcandre.lureau@redhat.com>
---
 include/chardev/char.h | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/include/chardev/char.h b/include/chardev/char.h
index 589e7fe46d..a319b5fdff 100644
--- a/include/chardev/char.h
+++ b/include/chardev/char.h
@@ -254,24 +254,57 @@ struct ChardevClass {
 
     bool internal; /* TODO: eventually use TYPE_USER_CREATABLE */
     bool supports_yank;
+
+    /* parse command line options and populate QAPI @backend */
     void (*parse)(QemuOpts *opts, ChardevBackend *backend, Error **errp);
 
+    /* called after construction, open/starts the backend */
     void (*open)(Chardev *chr, ChardevBackend *backend,
                  bool *be_opened, Error **errp);
 
+    /* write buf to the backend */
     int (*chr_write)(Chardev *s, const uint8_t *buf, int len);
+
+    /*
+     * Read from the backend (blocking). A typical front-end will instead rely
+     * on chr_can_read/chr_read being called when polling/looping.
+     */
     int (*chr_sync_read)(Chardev *s, const uint8_t *buf, int len);
+
+    /* create a watch on the backend */
     GSource *(*chr_add_watch)(Chardev *s, GIOCondition cond);
+
+    /* update the backend internal sources */
     void (*chr_update_read_handler)(Chardev *s);
+
+    /* send an ioctl to the backend */
     int (*chr_ioctl)(Chardev *s, int cmd, void *arg);
+
+    /* get ancillary-received fds during last read */
     int (*get_msgfds)(Chardev *s, int* fds, int num);
+
+    /* set ancillary fds to be sent with next write */
     int (*set_msgfds)(Chardev *s, int *fds, int num);
+
+    /* accept the given fd */
     int (*chr_add_client)(Chardev *chr, int fd);
+
+    /* wait for a connection */
     int (*chr_wait_connected)(Chardev *chr, Error **errp);
+
+    /* disconnect a connection */
     void (*chr_disconnect)(Chardev *chr);
+
+    /* called by frontend when it can read */
     void (*chr_accept_input)(Chardev *chr);
+
+    /* set terminal echo */
     void (*chr_set_echo)(Chardev *chr, bool echo);
+
+    /* notify the backend of frontend open state */
     void (*chr_set_fe_open)(Chardev *chr, int fe_open);
+
+    /* handle various events */
     void (*chr_be_event)(Chardev *s, QEMUChrEvent event);
 };
 
-- 
2.33.0.113.g6c40894d24



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PULL 0/5] Misc patches
  2021-09-14 13:01 [PULL 0/5] Misc patches marcandre.lureau
                   ` (4 preceding siblings ...)
  2021-09-14 13:01 ` [PULL 5/5] chardev: add some comments about the class methods marcandre.lureau
@ 2021-09-14 19:10 ` Peter Maydell
  5 siblings, 0 replies; 7+ messages in thread
From: Peter Maydell @ 2021-09-14 19:10 UTC (permalink / raw)
  To: Marc-André Lureau; +Cc: QEMU Developers

On Tue, 14 Sept 2021 at 14:01, <marcandre.lureau@redhat.com> wrote:
>
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
>
> The following changes since commit c6f5e042d89e79206cd1ce5525d3df219f13c3cc:
>
>   Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20210913-3' into staging (2021-09-13 21:06:15 +0100)
>
> are available in the Git repository at:
>
>   git@gitlab.com:marcandre.lureau/qemu.git tags/misc-pull-request
>
> for you to fetch changes up to 78e3e1d046e64b86e8c9bf3011d5a2a795b5e373:
>
>   chardev: add some comments about the class methods (2021-09-14 16:57:11 +0400)
>
> ----------------------------------------------------------------
> chardev & doc misc
>
> ----------------------------------------------------------------


Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/6.2
for any user-visible changes.

-- PMM


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2021-09-14 19:13 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-14 13:01 [PULL 0/5] Misc patches marcandre.lureau
2021-09-14 13:01 ` [PULL 1/5] docs: add supported host CPU architectures section marcandre.lureau
2021-09-14 13:01 ` [PULL 2/5] meson.build: fix comment typo marcandre.lureau
2021-09-14 13:01 ` [PULL 3/5] chardev: Propagate error from logfile opening marcandre.lureau
2021-09-14 13:01 ` [PULL 4/5] chardev: remove needless class method marcandre.lureau
2021-09-14 13:01 ` [PULL 5/5] chardev: add some comments about the class methods marcandre.lureau
2021-09-14 19:10 ` [PULL 0/5] Misc patches 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.