From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4812 invoked by alias); 27 Jan 2015 15:31:38 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 4755 invoked by uid 89); 27 Jan 2015 15:31:34 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-1.8 required=5.0 tests=AWL,SPF_PASS,T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: mga03.intel.com Received: from mga03.intel.com (HELO mga03.intel.com) (134.134.136.65) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 27 Jan 2015 15:31:33 +0000 Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga103.jf.intel.com with ESMTP; 27 Jan 2015 07:27:13 -0800 X-ExtLoop1: 1 Received: from irsmsx101.ger.corp.intel.com ([163.33.3.153]) by fmsmga001.fm.intel.com with ESMTP; 27 Jan 2015 07:31:29 -0800 Received: from irsmsx104.ger.corp.intel.com ([169.254.5.229]) by IRSMSX101.ger.corp.intel.com ([169.254.1.245]) with mapi id 14.03.0195.001; Tue, 27 Jan 2015 15:31:07 +0000 From: "Metzger, Markus T" To: Pedro Alves CC: "gdb-patches@sourceware.org" Subject: RE: [PATCH v2 03/13] btrace, linux: add perf event buffer abstraction Date: Tue, 27 Jan 2015 18:14:00 -0000 Message-ID: References: <1416480444-9943-1-git-send-email-markus.t.metzger@intel.com> <1416480444-9943-4-git-send-email-markus.t.metzger@intel.com> <54C773CE.8040708@redhat.com> In-Reply-To: <54C773CE.8040708@redhat.com> Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-IsSubscribed: yes X-SW-Source: 2015-01/txt/msg00723.txt.bz2 > -----Original Message----- > From: Pedro Alves [mailto:palves@redhat.com] > Sent: Tuesday, January 27, 2015 12:18 PM > To: Metzger, Markus T > Cc: gdb-patches@sourceware.org > Subject: Re: [PATCH v2 03/13] btrace, linux: add perf event buffer abstra= ction >=20 > On 11/20/2014 10:47 AM, Markus Metzger wrote: >=20 > > - volatile struct perf_event_mmap_page *header; > > + struct perf_event_buffer *pevent; > > const uint8_t *begin, *end, *start; > > - unsigned long data_head, data_tail, retries =3D 5; > > - size_t buffer_size, size; > > + unsigned long long data_head, data_tail, buffer_size, size; > > + size_t retries =3D 5; >=20 > I notice that this is changing types from long to long long. > Also, a bit odd that retries is now size_t, given it's just a counter. I changed retries to unsigned int. data_head and data_tail correspond to respective fields in struct perf_event_mmap_page, a kernel data structure. buffer_size corresponds to the data_size field in the same struct. I can't say why they had been unsigned long before. It was likely a bug. > > +#if HAVE_LINUX_PERF_EVENT_H > > +/* A Linux perf event buffer. */ > > +struct perf_event_buffer > > +{ > > + /* The mapped memory. */ > > + const uint8_t *mem; > > + > > + /* The size of the mapped memory in bytes. */ > > + unsigned long long size; > > + > > + /* A pointer to the data_head field for this buffer. */ > > + volatile unsigned long long *data_head; > > + > > + /* The data_head value from the last read. */ > > + unsigned long long last_head; > > +}; >=20 > Isn't there a better type to use here instead of "long long"? > Why not size_t, if a host buffer size; uint64_t, if it's a fixed > buffer format, assuming 64-bit here; or ULONGEST, the widest > integer we support? I'm using the same data type as the respective fields in struct perf_event_mmap_page (after resolving a few typedefs). I'm also fine to directly use __u64 or to use uint64_t. Thanks, Markus. Intel GmbH Dornacher Strasse 1 85622 Feldkirchen/Muenchen, Deutschland Sitz der Gesellschaft: Feldkirchen bei Muenchen Geschaeftsfuehrer: Christian Lamprechter, Hannes Schwaderer, Douglas Lusk Registergericht: Muenchen HRB 47456 Ust.-IdNr./VAT Registration No.: DE129385895 Citibank Frankfurt a.M. (BLZ 502 109 00) 600119052