Thursday, 5 January 2012

0MQ

A simple abstraction of the socket api

Intro:
http://lwn.net/Articles/370307/

Guide:
http://zguide.zeromq.org/page:all

FAQ:
http://www.zeromq.org/area:faq

Home page:
http://www.zero.mq

RoCE - RDMA over Converged Ethernet

http://www.mellanox.com/related-docs/prod_software/ConnectX-2_RDMA_RoCE.pdf

RDMA Aware programming user manual:
http://www.mellanox.com/related-docs/prod_software/RDMA_Aware_Programming_user_manual.pdf

Tuesday, 3 January 2012

Network packet capture / analysis: tcpdump

http://www.linuxjournal.com/content/tcpdump-fu

Example: capture anything sent to/from port 7500 on interface eth0 and dump it to a file


$ sudo /usr/sbin/tcpdump -w /tmp/tcpdump.out -s 0 -i eth0 port 7500

We can now use Wireshark to read the file and analyse the packets

To filter the packets based on, for example, a port; use an expression such as tcp.port == 1234





Zero-copy

http://www.linuxjournal.com/article/6345

Wednesday, 14 December 2011

dynamically linked libraries


ELF file format has an RPATH section where it lists hardcoded paths to search for libraries

You can find the RPATH that an application has:
readelf -d app_name  | grep RPATH

Hardcoding paths into an application is not very elegant. It is better to allow the Linux dynamic linker to locate the libraries for you.

Fedora has /etc/ld.so.conf.d/ which is a folder it searches for library paths. You can add foo-x86_64.conf, and inside put the library path, and ld will search that path whenever it needs to locate libfoo.so

Tuesday, 13 December 2011

Fedora 16: enable core files

/proc/sys/kernel/core_pattern is used to specify a core dumpfile pattern name.
If the first character of the pattern is a '|', the kernel will treat the rest of the pattern as a command to run. The core dump will be written to the standard input of that program instead of to a file.

The default core_pattern is:
|/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t e

So we instead put core.%p into the file so we get a core file.
echo "core.%p" > /proc/sys/kernel/core_pattern

put ulimit -c unlimited into your .bashrc

Monday, 12 December 2011

Fedora 16: Yum and package management

list installed packages
yum list installed

list available packages (not yet installed)
yum list available

list all packages (installed and available)
yum list all

list all package groups
yum grouplist

list all repost
yum repolist

info on a package
yum info package_name

install a package
yum install package_name

install a package group
yum groupinstall "Group package name"

uninstall a package
yum remove package_name

uninstall a package group

yum groupremove "Group package name"

find installation location of a package
rpm -ql package_name