Messages in this thread | | | From | Namhyung Kim <> | Subject | Re: [PATCH 05/15 V3] perf, c2c: Rework setup code to prepare for features | Date | Wed, 09 Apr 2014 10:12:32 +0900 |
| |
On Tue, 8 Apr 2014 10:11:07 -0400, Don Zickus wrote: > On Tue, Apr 08, 2014 at 04:41:29PM +0900, Namhyung Kim wrote: >> On Sat, 29 Mar 2014 18:10:18 +0100, Jiri Olsa wrote: >> > On Mon, Mar 24, 2014 at 03:36:56PM -0400, Don Zickus wrote: >> > >> > SNIP >> > >> >> >> >> static int perf_c2c__process_load_store(struct perf_c2c *c2c, >> >> + struct addr_location *al, >> >> struct perf_sample *sample, >> >> - struct addr_location *al) >> >> + struct perf_evsel *evsel) >> >> { >> >> - if (c2c->raw_records) >> >> - perf_sample__fprintf(sample, ' ', "raw input", al, stdout); >> >> + struct mem_info *mi; >> >> + >> >> + mi = sample__resolve_mem(sample, al); >> >> + if (!mi) >> >> + return -ENOMEM; >> > >> > perhaps not directly related to this patchset, but I needed >> > attached patch to get resolved data in .bss (static), which >> > for some reason happened to be located in executable segment >> >> Wasn't it a read-only/const data? > > I believe it had the 'x' bit set. Or the kernel was not passing any > protection bits, so it defaulted to MAP_FUNCTION?
The perf treats a mapping as a data mapping (MAP_VARIABLE) by default if the 'x' bit is not set. As Jiri said its a static data, I guessed it's a const data (set to 0?) and moved into .rodata section and then to the text segment.
Thanks, Namhyung
| |