From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: Andrey Konovalov <andreyknvl@google.com>
Cc: linux-usb@vger.kernel.org, kvm@vger.kernel.org,
virtualization@lists.linux-foundation.org,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
Dmitry Vyukov <dvyukov@google.com>,
Alan Stern <stern@rowland.harvard.edu>,
"Michael S . Tsirkin" <mst@redhat.com>,
Jason Wang <jasowang@redhat.com>,
Andrew Morton <akpm@linux-foundation.org>,
Arnd Bergmann <arnd@arndb.de>,
Steven Rostedt <rostedt@goodmis.org>,
David Windsor <dwindsor@gmail.com>,
Elena Reshetova <elena.reshetova@intel.com>,
Anders Roxell <anders.roxell@linaro.org>
Subject: Re: [PATCH RFC 2/3] usb, kcov: collect coverage from hub_event
Date: Thu, 17 Oct 2019 11:19:43 -0700 [thread overview]
Message-ID: <20191017181943.GC1094415@kroah.com> (raw)
In-Reply-To: <1b30d1c9e7f86c25425c5ee53d7facede289608e.1571333592.git.andreyknvl@google.com>
On Thu, Oct 17, 2019 at 07:44:14PM +0200, Andrey Konovalov wrote:
> This patch adds kcov_remote_start/kcov_remote_stop annotations to the
> hub_event function, which is responsible for processing events on USB
> buses, in particular events that happen during USB device enumeration.
> Each USB bus gets a unique id, which can be used to attach a kcov device
> to a particular USB bus for coverage collection.
>
> Signed-off-by: Andrey Konovalov <andreyknvl@google.com>
> ---
> drivers/usb/core/hub.c | 4 ++++
> include/linux/kcov.h | 1 +
> include/uapi/linux/kcov.h | 7 +++++++
> 3 files changed, 12 insertions(+)
>
> diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
> index 236313f41f4a..03a40e41b099 100644
> --- a/drivers/usb/core/hub.c
> +++ b/drivers/usb/core/hub.c
> @@ -5374,6 +5374,8 @@ static void hub_event(struct work_struct *work)
> hub_dev = hub->intfdev;
> intf = to_usb_interface(hub_dev);
>
> + kcov_remote_start(kcov_remote_handle_usb(hdev->bus->busnum));
> +
> dev_dbg(hub_dev, "state %d ports %d chg %04x evt %04x\n",
> hdev->state, hdev->maxchild,
> /* NOTE: expects max 15 ports... */
> @@ -5480,6 +5482,8 @@ static void hub_event(struct work_struct *work)
> /* Balance the stuff in kick_hub_wq() and allow autosuspend */
> usb_autopm_put_interface(intf);
> kref_put(&hub->kref, hub_release);
> +
> + kcov_remote_stop();
> }
>
> static const struct usb_device_id hub_id_table[] = {
> diff --git a/include/linux/kcov.h b/include/linux/kcov.h
> index 702672d98d35..38a47e0b67c2 100644
> --- a/include/linux/kcov.h
> +++ b/include/linux/kcov.h
> @@ -30,6 +30,7 @@ void kcov_task_exit(struct task_struct *t);
> /*
> * Reserved handle ranges:
> * 0000000000000000 - 0000ffffffffffff : common handles
> + * 0001000000000000 - 0001ffffffffffff : USB subsystem handles
So how many bits are you going to have for any in-kernel tasks? Aren't
you going to run out quickly?
> */
> void kcov_remote_start(u64 handle);
> void kcov_remote_stop(void);
> diff --git a/include/uapi/linux/kcov.h b/include/uapi/linux/kcov.h
> index 46f78f716ca9..45c9ae59cebc 100644
> --- a/include/uapi/linux/kcov.h
> +++ b/include/uapi/linux/kcov.h
> @@ -43,4 +43,11 @@ enum {
> #define KCOV_CMP_SIZE(n) ((n) << 1)
> #define KCOV_CMP_MASK KCOV_CMP_SIZE(3)
>
> +#define KCOV_REMOTE_HANDLE_USB 0x0001000000000000ull
> +
> +static inline __u64 kcov_remote_handle_usb(unsigned int bus)
> +{
> + return KCOV_REMOTE_HANDLE_USB + (__u64)bus;
> +}
Why is this function in a uapi .h file? What userspace code would call
this?
thanks,
greg k-h
next prev parent reply other threads:[~2019-10-17 18:19 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-17 17:44 [PATCH RFC 0/3] kcov: collect coverage from usb and vhost Andrey Konovalov
2019-10-17 17:44 ` [PATCH RFC 1/3] kcov: remote coverage support Andrey Konovalov
2019-10-21 13:53 ` Dmitry Vyukov
2019-10-22 16:44 ` Andrey Konovalov
2019-10-21 13:53 ` Dmitry Vyukov via Virtualization
2019-10-17 17:44 ` [PATCH RFC 2/3] usb, kcov: collect coverage from hub_event Andrey Konovalov
2019-10-17 18:19 ` Greg Kroah-Hartman
2019-10-17 18:19 ` Greg Kroah-Hartman [this message]
2019-10-17 19:06 ` Andrey Konovalov
2019-10-17 20:29 ` Greg Kroah-Hartman
2019-10-17 20:29 ` Greg Kroah-Hartman
2019-10-17 17:44 ` [PATCH RFC 3/3] vhost, kcov: collect coverage from vhost_worker Andrey Konovalov
2019-10-17 18:18 ` Greg Kroah-Hartman
2019-10-17 18:18 ` Greg Kroah-Hartman
2019-10-17 19:00 ` Andrey Konovalov
2019-10-17 20:28 ` Greg Kroah-Hartman
2019-10-17 20:28 ` Greg Kroah-Hartman
2019-10-17 20:29 ` Andrey Konovalov
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=20191017181943.GC1094415@kroah.com \
--to=gregkh@linuxfoundation.org \
--cc=akpm@linux-foundation.org \
--cc=anders.roxell@linaro.org \
--cc=andreyknvl@google.com \
--cc=arnd@arndb.de \
--cc=dvyukov@google.com \
--cc=dwindsor@gmail.com \
--cc=elena.reshetova@intel.com \
--cc=jasowang@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=mst@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=rostedt@goodmis.org \
--cc=stern@rowland.harvard.edu \
--cc=virtualization@lists.linux-foundation.org \
/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.