/* don't engage with tstring when printf, use buffer directly */ static int ktap_lib_printf(ktap_state *ks) { struct trace_seq *seq; preempt_disable_notrace(); seq = kp_percpu_data(KTAP_PERCPU_DATA_BUFFER); trace_seq_init(seq); if (kp_strfmt(ks, seq)) return 0; seq->buffer[seq->len] = '\0'; kp_transport_write(ks, seq->buffer, seq->len + 1); preempt_enable_notrace(); return 0; }
/* don't engage with tstring when printf, use buffer directly */ static int ktap_lib_printf(ktap_State *ks) { struct trace_seq *seq; if (ks == G(ks)->mainthread) { seq = &mainthread_printf_seq; } else { seq = &per_cpu(printf_seq, smp_processor_id()); } trace_seq_init(seq); if (kp_strfmt(ks, seq)) { return 0; } seq->buffer[seq->len] = '\0'; kp_transport_write(ks, seq->buffer, seq->len); return 0; }