From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932368AbaIWRC4 (ORCPT ); Tue, 23 Sep 2014 13:02:56 -0400 Received: from foss-mx-na.foss.arm.com ([217.140.108.86]:36210 "EHLO foss-mx-na.foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932148AbaIWRCx (ORCPT ); Tue, 23 Sep 2014 13:02:53 -0400 Message-ID: <1411491764.3922.46.camel@hornet> Subject: Re: [PATCH 2/2] perf: Userspace software event and ioctl From: Pawel Moll To: Ingo Molnar , Arnaldo Carvalho de Melo Cc: Richard Cochran , Steven Rostedt , Peter Zijlstra , Paul Mackerras , John Stultz , "linux-kernel@vger.kernel.org" , "linux-api@vger.kernel.org" Date: Tue, 23 Sep 2014 18:02:44 +0100 In-Reply-To: <1411050873-9310-3-git-send-email-pawel.moll@arm.com> References: <1411050873-9310-1-git-send-email-pawel.moll@arm.com> <1411050873-9310-3-git-send-email-pawel.moll@arm.com> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.10.4-0ubuntu2 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 2014-09-18 at 15:34 +0100, Pawel Moll wrote: > This patch adds a PERF_COUNT_SW_USERSPACE_EVENT type, > which can be generated by user with PERF_EVENT_IOC_ENTRY > ioctl command, which injects an event of said type into > the perf buffer. It occurred to me last night that currently perf doesn't handle "write" syscall at all, while this seems like the most natural way of "injecting" userspace events into perf buffer. An ioctl would still be needed to set a type of the following events, something like: ioctl(SET_TYPE, 0x42); write(perf_fd, binaryblob, size); ioctl(SET_TYPE, 0); dprintf(perf_fd, "String"); which is fine for use cases when the type doesn't change often, but would double the amount of syscalls when every single event is of a different type. Perhaps there still should be a "generating ioctl" taking both type and data/size in one go? Anyway, I'll post a series showing this solution in a second. As always, feedback is more than welcome. Pawel