Re: [RFC PATCH v3 23/37] bpf tools: Introduce bpf_load_program() to bpf.c
Em Mon, May 18, 2015 at 11:52:59AM -0700, Alexei Starovoitov escreveu: > On 5/17/15 3:56 AM, Wang Nan wrote: > >bpf_load_program() can be used to load bpf program into kernel. To make > >loading faster, first try to load without logbuf. Try again with logbuf > >if the first try failed. > > > >Signed-off-by: Wang Nan > ... > >+attr.insn_cnt = (__u32)insns_cnt; > >+attr.insns = ptr_to_u64((void *) insns); > >+attr.license = ptr_to_u64((void *) license); > > unnecessary casts? And inconsistent at that, we don't need a space before the casted variable. > >+attr.log_buf = ptr_to_u64(NULL); > >+attr.log_size = 0; > >+attr.log_level = 0; > >+attr.kern_version = kern_version; > >+ > >+fd = sys_bpf(BPF_PROG_LOAD, , sizeof(attr)); > >+if ((fd >= 0) || !log_buf || !log_buf_sz) > > unnecessary () > > >+return fd; > >+ > >+/* Try again with log */ > >+attr.log_buf = ptr_to_u64(log_buf); > >+attr.log_size = log_buf_sz; > >+attr.log_level = 1; > >+log_buf[0] = 0; > >+return sys_bpf(BPF_PROG_LOAD, , sizeof(attr)); > > this part looks good. thank you for addressing the feedback from v1. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [RFC PATCH v3 23/37] bpf tools: Introduce bpf_load_program() to bpf.c
On 5/17/15 3:56 AM, Wang Nan wrote: bpf_load_program() can be used to load bpf program into kernel. To make loading faster, first try to load without logbuf. Try again with logbuf if the first try failed. Signed-off-by: Wang Nan ... + attr.insn_cnt = (__u32)insns_cnt; + attr.insns = ptr_to_u64((void *) insns); + attr.license = ptr_to_u64((void *) license); unnecessary casts? + attr.log_buf = ptr_to_u64(NULL); + attr.log_size = 0; + attr.log_level = 0; + attr.kern_version = kern_version; + + fd = sys_bpf(BPF_PROG_LOAD, , sizeof(attr)); + if ((fd >= 0) || !log_buf || !log_buf_sz) unnecessary () + return fd; + + /* Try again with log */ + attr.log_buf = ptr_to_u64(log_buf); + attr.log_size = log_buf_sz; + attr.log_level = 1; + log_buf[0] = 0; + return sys_bpf(BPF_PROG_LOAD, , sizeof(attr)); this part looks good. thank you for addressing the feedback from v1. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [RFC PATCH v3 23/37] bpf tools: Introduce bpf_load_program() to bpf.c
On 5/17/15 3:56 AM, Wang Nan wrote: bpf_load_program() can be used to load bpf program into kernel. To make loading faster, first try to load without logbuf. Try again with logbuf if the first try failed. Signed-off-by: Wang Nan wangn...@huawei.com ... + attr.insn_cnt = (__u32)insns_cnt; + attr.insns = ptr_to_u64((void *) insns); + attr.license = ptr_to_u64((void *) license); unnecessary casts? + attr.log_buf = ptr_to_u64(NULL); + attr.log_size = 0; + attr.log_level = 0; + attr.kern_version = kern_version; + + fd = sys_bpf(BPF_PROG_LOAD, attr, sizeof(attr)); + if ((fd = 0) || !log_buf || !log_buf_sz) unnecessary () + return fd; + + /* Try again with log */ + attr.log_buf = ptr_to_u64(log_buf); + attr.log_size = log_buf_sz; + attr.log_level = 1; + log_buf[0] = 0; + return sys_bpf(BPF_PROG_LOAD, attr, sizeof(attr)); this part looks good. thank you for addressing the feedback from v1. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [RFC PATCH v3 23/37] bpf tools: Introduce bpf_load_program() to bpf.c
Em Mon, May 18, 2015 at 11:52:59AM -0700, Alexei Starovoitov escreveu: On 5/17/15 3:56 AM, Wang Nan wrote: bpf_load_program() can be used to load bpf program into kernel. To make loading faster, first try to load without logbuf. Try again with logbuf if the first try failed. Signed-off-by: Wang Nan wangn...@huawei.com ... +attr.insn_cnt = (__u32)insns_cnt; +attr.insns = ptr_to_u64((void *) insns); +attr.license = ptr_to_u64((void *) license); unnecessary casts? And inconsistent at that, we don't need a space before the casted variable. +attr.log_buf = ptr_to_u64(NULL); +attr.log_size = 0; +attr.log_level = 0; +attr.kern_version = kern_version; + +fd = sys_bpf(BPF_PROG_LOAD, attr, sizeof(attr)); +if ((fd = 0) || !log_buf || !log_buf_sz) unnecessary () +return fd; + +/* Try again with log */ +attr.log_buf = ptr_to_u64(log_buf); +attr.log_size = log_buf_sz; +attr.log_level = 1; +log_buf[0] = 0; +return sys_bpf(BPF_PROG_LOAD, attr, sizeof(attr)); this part looks good. thank you for addressing the feedback from v1. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/