On Mon, 2017-09-18 at 18:39 +0900, Sergey Senozhatsky wrote:
> Hi,
>
> On (09/12/17 14:07), pierre kuo wrote:
> [..]
> > int per_cpu_thread_fn(void* data)
> > {
> > unsigned int index = 0;
> > unsigned int len = 0;
> > char* local_string = kzalloc(2048, GFP_KERNEL);
> >
> > do {
> > len += sprintf((local_string + len), "this is the %d line\n",
> > index++);
> > }while(len < 576);
> > printk_deferred("%s", local_string);
> > return 0;
> > }
>
> which is not a real world example, isn't it?
>
> printk_deferred("%s", local_string[2048]) makes no sense anyway,
> since we limit the message size to 1024 - HEADER chars in
> vprintk_emit() // see static char textbuf[LOG_LINE_MAX].
>
> I'm not quite following what were you trying to prove, sorry.
> does any function in the upstream kernel printk()-s buffers
> larger than LOG_LINE_MAX? which one?
>
>
> - the longest line in my dmesg output is 260 bytes in total (including
> timestamp)
try a kernel with a few modules loaded
For instance:
$ dmesg | awk '{ print length($0), $0 }'|sort -rn | head -1
827 [337318.968616] Modules linked in: snd_usb_audio snd_usbmidi_lib ccm rfcomm
bnep snd_hda_codec_hdmi dell_led snd_hda_codec_realtek snd_hda_codec_generic
hid_multitouch binfmt_misc nls_iso8859_1 arc4 i2c_designware_platform
i2c_designware_core dell_wmi snd_soc_skl snd_soc_skl_ipc snd_soc_sst_ipc
snd_soc_sst_dsp snd_hda_ext_core snd_soc_sst_match snd_soc_core snd_compress
ac97_bus snd_pcm_dmaengine snd_hda_intel dell_laptop intel_rapl snd_hda_codec
dell_smbios dcdbas x86_pkg_temp_thermal snd_hda_core intel_powerclamp snd_hwdep
coretemp kvm_intel snd_pcm kvm irqbypass crct10dif_pclmul crc32_pclmul
ghash_clmulni_intel iwlmvm pcbc mac80211 snd_seq_midi snd_seq_midi_event
aesni_intel aes_x86_64 crypto_simd snd_rawmidi glue_helper cryptd intel_cstate
intel_rapl_perf snd_seq iwlwifi snd_seq_device uvcvideo videobuf2_vmalloc