lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Thu, 2 Apr 2009 20:34:17 +0200
From:	Ingo Molnar <mingo@...e.hu>
To:	Peter Zijlstra <a.p.zijlstra@...llo.nl>
Cc:	Paul Mackerras <paulus@...ba.org>,
	Corey Ashford <cjashfor@...ux.vnet.ibm.com>,
	linux-kernel@...r.kernel.org
Subject: Re: [PATCH 5/6] perf_counter: add more context information


* Peter Zijlstra <a.p.zijlstra@...llo.nl> wrote:

> On Thu, 2009-04-02 at 20:18 +0200, Ingo Molnar wrote:
> > * Peter Zijlstra <a.p.zijlstra@...llo.nl> wrote:
> > 
> > > On Thu, 2009-04-02 at 13:36 +0200, Ingo Molnar wrote:
> > > 
> > > > > -#define MAX_STACK_DEPTH		255
> > > > > +#define MAX_STACK_DEPTH		254
> > > > >  
> > > > >  struct perf_callchain_entry {
> > > > > -	u64	nr;
> > > > > +	u32	nr, hv, kernel, user;
> > > > >  	u64	ip[MAX_STACK_DEPTH];
> > > > >  };
> > > 
> > > Oh, and Paul suggested using u16s right after I send it out. So 
> > > I'll either send an update or send a incremental in case you 
> > > already applied it.
> > 
> > yes, that's probably a good idea. Although u8 might be even better - 
> > do we ever want to do more than 256 deep stack vectors? Even those 
> > would take quite some time to construct and pass down.
> 
> We'd have to pad it with 4 more bytes to remain u64 aligned,

ok, indeed.

> [...] also, why restrict ourselves. That MAX_STACK_DEPTH limit is 
> trivially fixable if indeed someone finds its insufficient.

well .. think about it: walking more than 256 stack frames for every 
IRQ event? Getting backtraces like:

 <func_0+0x123>
 <func_1+0x123>
 <func_2+0x123>
 <func_3+0x123>
 <func_4+0x123>
 <func_5+0x123>
 <func_6+0x123>
 <func_7+0x123>
 <func_8+0x123>
 <func_9+0x123>
 <func_10+0x123>
 <func_11+0x123>
 <func_12+0x123>
 <func_13+0x123>
 <func_14+0x123>
 <func_15+0x123>
 <func_16+0x123>
 <func_17+0x123>
 <func_18+0x123>
 <func_19+0x123>
 <func_20+0x123>
 <func_21+0x123>
 <func_22+0x123>
 <func_23+0x123>
 <func_24+0x123>
 <func_25+0x123>
 <func_26+0x123>
 <func_27+0x123>
 <func_28+0x123>
 <func_29+0x123>
 <func_30+0x123>
 <func_31+0x123>
 <func_32+0x123>
 <func_33+0x123>
 <func_34+0x123>
 <func_35+0x123>
 <func_36+0x123>
 <func_37+0x123>
 <func_38+0x123>
 <func_39+0x123>
 <func_40+0x123>
 <func_41+0x123>
 <func_42+0x123>
 <func_43+0x123>
 <func_44+0x123>
 <func_45+0x123>
 <func_46+0x123>
 <func_47+0x123>
 <func_48+0x123>
 <func_49+0x123>
 <func_50+0x123>
 <func_51+0x123>
 <func_52+0x123>
 <func_53+0x123>
 <func_54+0x123>
 <func_55+0x123>
 <func_56+0x123>
 <func_57+0x123>
 <func_58+0x123>
 <func_59+0x123>
 <func_60+0x123>
 <func_61+0x123>
 <func_62+0x123>
 <func_63+0x123>
 <func_64+0x123>
 <func_65+0x123>
 <func_66+0x123>
 <func_67+0x123>
 <func_68+0x123>
 <func_69+0x123>
 <func_70+0x123>
 <func_71+0x123>
 <func_72+0x123>
 <func_73+0x123>
 <func_74+0x123>
 <func_75+0x123>
 <func_76+0x123>
 <func_77+0x123>
 <func_78+0x123>
 <func_79+0x123>
 <func_80+0x123>
 <func_81+0x123>
 <func_82+0x123>
 <func_83+0x123>
 <func_84+0x123>
 <func_85+0x123>
 <func_86+0x123>
 <func_87+0x123>
 <func_88+0x123>
 <func_89+0x123>
 <func_90+0x123>
 <func_91+0x123>
 <func_92+0x123>
 <func_93+0x123>
 <func_94+0x123>
 <func_95+0x123>
 <func_96+0x123>
 <func_97+0x123>
 <func_98+0x123>
 <func_99+0x123>
 <func_100+0x123>
 <func_101+0x123>
 <func_102+0x123>
 <func_103+0x123>
 <func_104+0x123>
 <func_105+0x123>
 <func_106+0x123>
 <func_107+0x123>
 <func_108+0x123>
 <func_109+0x123>
 <func_110+0x123>
 <func_111+0x123>
 <func_112+0x123>
 <func_113+0x123>
 <func_114+0x123>
 <func_115+0x123>
 <func_116+0x123>
 <func_117+0x123>
 <func_118+0x123>
 <func_119+0x123>
 <func_120+0x123>
 <func_121+0x123>
 <func_122+0x123>
 <func_123+0x123>
 <func_124+0x123>
 <func_125+0x123>
 <func_126+0x123>
 <func_127+0x123>
 <func_128+0x123>
 <func_129+0x123>
 <func_130+0x123>
 <func_131+0x123>
 <func_132+0x123>
 <func_133+0x123>
 <func_134+0x123>
 <func_135+0x123>
 <func_136+0x123>
 <func_137+0x123>
 <func_138+0x123>
 <func_139+0x123>
 <func_140+0x123>
 <func_141+0x123>
 <func_142+0x123>
 <func_143+0x123>
 <func_144+0x123>
 <func_145+0x123>
 <func_146+0x123>
 <func_147+0x123>
 <func_148+0x123>
 <func_149+0x123>
 <func_150+0x123>
 <func_151+0x123>
 <func_152+0x123>
 <func_153+0x123>
 <func_154+0x123>
 <func_155+0x123>
 <func_156+0x123>
 <func_157+0x123>
 <func_158+0x123>
 <func_159+0x123>
 <func_160+0x123>
 <func_161+0x123>
 <func_162+0x123>
 <func_163+0x123>
 <func_164+0x123>
 <func_165+0x123>
 <func_166+0x123>
 <func_167+0x123>
 <func_168+0x123>
 <func_169+0x123>
 <func_170+0x123>
 <func_171+0x123>
 <func_172+0x123>
 <func_173+0x123>
 <func_174+0x123>
 <func_175+0x123>
 <func_176+0x123>
 <func_177+0x123>
 <func_178+0x123>
 <func_179+0x123>
 <func_180+0x123>
 <func_181+0x123>
 <func_182+0x123>
 <func_183+0x123>
 <func_184+0x123>
 <func_185+0x123>
 <func_186+0x123>
 <func_187+0x123>
 <func_188+0x123>
 <func_189+0x123>
 <func_190+0x123>
 <func_191+0x123>
 <func_192+0x123>
 <func_193+0x123>
 <func_194+0x123>
 <func_195+0x123>
 <func_196+0x123>
 <func_197+0x123>
 <func_198+0x123>
 <func_199+0x123>
 <func_200+0x123>
 <func_201+0x123>
 <func_202+0x123>
 <func_203+0x123>
 <func_204+0x123>
 <func_205+0x123>
 <func_206+0x123>
 <func_207+0x123>
 <func_208+0x123>
 <func_209+0x123>
 <func_210+0x123>
 <func_211+0x123>
 <func_212+0x123>
 <func_213+0x123>
 <func_214+0x123>
 <func_215+0x123>
 <func_216+0x123>
 <func_217+0x123>
 <func_218+0x123>
 <func_219+0x123>
 <func_220+0x123>
 <func_221+0x123>
 <func_222+0x123>
 <func_223+0x123>
 <func_224+0x123>
 <func_225+0x123>
 <func_226+0x123>
 <func_227+0x123>
 <func_228+0x123>
 <func_229+0x123>
 <func_230+0x123>
 <func_231+0x123>
 <func_232+0x123>
 <func_233+0x123>
 <func_234+0x123>
 <func_235+0x123>
 <func_236+0x123>
 <func_237+0x123>
 <func_238+0x123>
 <func_239+0x123>
 <func_240+0x123>
 <func_241+0x123>
 <func_242+0x123>
 <func_243+0x123>
 <func_244+0x123>
 <func_245+0x123>
 <func_246+0x123>
 <func_247+0x123>
 <func_248+0x123>
 <func_249+0x123>
 <func_250+0x123>
 <func_251+0x123>
 <func_252+0x123>
 <func_253+0x123>
 <func_254+0x123>
 <func_255+0x123>
 <func_256+0x123>
 <func_257+0x123>
 <func_258+0x123>
 <func_259+0x123>
 <func_260+0x123>
 <func_261+0x123>
 <func_262+0x123>
 <func_263+0x123>
 <func_264+0x123>
 <func_265+0x123>
 <func_266+0x123>
 <func_267+0x123>
 <func_268+0x123>
 <func_269+0x123>

does that make much sense _per event_? How do you visualize it?

But yeah ... i could imagine some user-space craziness and since we 
want to align to u64 i guess that pretty much settles it to u16.

	Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ