weekly-report

========================================== 2014-12-31 week 52 Summary: TODO: Issues ip addr show dynamic Wed: Verify bug 1119364 Thu: PTO Report Bug 1177226 - scheduling while atomic: swapper/0/0x10000500 Fri: Test bug 1076106 Mon: Test bug 1076106, still could not reproduce, sanity only Tue: Report Bug 1177763 - [RFE] show ip dynamic address for IPv4 Run Protocol RHEL7.1 S1 testing ========================================== 2014-12-24 week 51 Summary: TODO: IOL Addr Arch testing Wed: OVS tech talk Thu: Add test restart_lo_bz744655 Fri: DISC training Mon: Run IOL Addr Arch test and all PASSed verify bug 1077053 Tue: Verify bug bug 1087416 Write test networking-socket-bugs-ping_init_sock_refcount_bz1086730 ========================================== 2014-12-17 week 50

accept Invalid argument

accept: Invalid argument int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen); Some times we got “accept: Invalid argument” error when write a socket program. There are two kinds of faults which may case this issue: Didn’t call bind or listen on sockfd. Didn’t initialize the addr or addrlen. addrlen must be a positive value.

packetdrill

Install: yum install flex bison glibc-static git clone https://code.google.com/p/packetdrill/ or https://github.com/borkmann/packetdrill.git or https://github.com/gdetal/packetdrill_mptcp.git ./configure && make issues: /usr/bin/ld: cannot find -lpthread packetdrill use -static when compile, so we need libxxx.a instead of libxxx.so, after install glibc-static, this issue resolved. Usage: ./packetdrill test.pkt test.pkt为按Packetdrill语法编写的测试

interview prepare

links: https://github.com/torvalds/linux/commits/master?author=liuhangbin@gmail.com https://github.com/kernelslacker/trinity/commits/master?author=liuhangbin@gmail.com https://github.com/borkmann/lksctp-tools/commits/master?author=liuhangbin@gmail.com pci_register_driver(&e100_driver) alloc_etherdev() // alloc dev memory register_netdev() receive message: netif_rx_schedule -> napi_schedule -> netif_recive_skb Send messag: dev_queue_xmit -> qdisc_run -> hard_start_xmit hard_start_xmit() Diff NAPI/Net Poll NAPI: stop interrupt and start poll mode, increase performance for device which will receive huge of packages per seconds. Netpoll: let kernel send package with unintact network, e.

linux device driver

kernel modules Linux kernel Licence GPLv2 kernel subsystem Process Managerment Memory Managermanet Filesystems Device control Networking Classes of device and modules char module 1. Character Device /dev/console, /dev/ttyS0 systemcall: open, close, read, write diff with regular file you can move back and forth in the regular file 1. you can only access sequentially in char device block module 1.