about summary refs log tree commit homepage
path: root/ext
DateCommit message (Collapse)
2011-03-12inet_diag: fix up IPv6 address stringification
This means we can read multiple addresses at once, even IPv6 ones.
2011-03-12inet_diag: fall back on IPv6 lookups
It's slow, but at least it works.
2011-03-12inet_diag: fold all_tcp_listener_stats into tcp_listener_stats
No reason to have an extra method. This also speeds up the multi-listener case for tcp_listener_stats since it avoids expensive sendmsg() syscalls.
2011-03-12inet_diag: small reorganization
2011-03-12inet_diag: do not set unblocking function
netlink is fast and predictable in response times, so permitting interrupts would just complicate things and lead to errors.
2011-03-12move st_table cleanup
Fewer places to check for errors, we think.
2011-03-12inet_diag: stricter IPv6 address parsing
Be stricter about invalid inputs.
2011-03-11linux: method for dumping all TCP listener stats
This is a work-in-progress and will probably be modified before the next release.
2011-03-11inet_diag: force the use of 32-bit counters
64-bit counters are unnecessarily large for tracking active or queued connections until we have IP_ROFLSCALE support :>
2011-03-11inet_diag: fixup braindamage from refactoring
Oops :x
2011-03-11cleanup struct initialization to avoid ifdefs
Too hard to maintain.
2011-03-11use unsigned values for all counters
We can't have negative values
2011-03-11inet_diag: cleanup unnecessarily large struct
We don't care for this address.
2011-03-11inet_diag: fixup broken assertion
Oops, strings are always true :x
2011-03-11inet_diag: factor out prep code
We're going to experiment with something...
2011-03-11tcp_info: more documentation on last_data_recv
It's useful, yes.
2011-03-10fix stupid typo in Raindrops#size=
Oops, it could give the GC problems.
2011-03-11support for Raindrops#size= and Raindrops#evaporate!
This allows limited resizing of the Raindrops memory area since we always over-allocate due to the required page aligment for mmap. It would be nice if mremap() worked with MAP_SHARED, but it does not and triggers a bus error when attempting to access the new area. ref: https://bugzilla.kernel.org/show_bug.cgi?id=8691
2011-03-10rdoc: 100% documentation coverage!
Of course, RDoc doesn't know quantity vs quality :)
2011-03-01use struct tcp_info from linux/tcp.h
It's more complete for people on ancient systems where "struct tcp_info" is defined in netinet/tcp and missing tcp_ircv_rtt, tcpi_rcv_space and tcpi_total_retrans.
2011-02-23add Raindrops::MAX constant
This is the highest number a counter may be incremented to before it overflows.
2011-02-23linux: add support for TCP_INFO reporting
This returns a Raindrops::TCP_Info object that wraps a tcp_info struct.
2011-02-23split out RSTRUCT* compat macros
We might reuse that for other code...
2011-02-23use autoload for Linux module
We'll be doing more Linux-only stuff
2011-02-15linux: add ipv6 support for inet_diag
inet_diag already supports AF_INET6.
2011-02-11addrs are always an Array of Strings
Acked-by: Eric Wong <normalperson@yhbt.net>
2010-09-25force -march=i486 where GCC is targeted for i386
Nobody uses i386 anymore (especially not with Ruby!), but some systems like FreeBSD 7.0 still target GCC at i386 by default, so we force GCC to use a slightly more modern instruction set and allow it to use atomic builtins.
2010-09-25disable Linux-only code on non-Linux
This allows us to build and link correctly on FreeBSD 7.0
2010-09-25linux: workaround missing RSTRUCT* macros in rbx
Rubinius does not include macros for accessing Struct members in the C API. ref: http://github.com/evanphx/rubinius/issues/494
2010-09-18use runtime cache line size detection
Modern glibc can easily return the L1 cache line size with sysconf(3), so we'll use that and avoid paying a size penalty on CPUs with smaller cache lines than 128 (every modern x86 except the idiotic P4). Additionally, if we detect a single CPU machine, avoid paying any padding penalty at all. On machines without the non-portable glibc sysconf(3) enhancements, we'll continue to operate on the assumption of an enormous 128 byte cache line size.
2010-09-18allow using libatomic_ops headers from HP
This allows non-GCC 4.x users to experience Raindrops.
2010-08-04avoid munmap(MAP_FAILED,...) in GC phase
This is only possible during an exit if our invocation of rb_gc() fails and causes the process to terminate. Otherwise the GC won't free something that's obviously on the stack.
2010-07-01linux_inet_diag: rename "addrs" => "query_addr"
"query_addr" is a more appropriate name since we only query one address at a time via netlink rather than relying on OR-ing in the bytecode.
2010-05-04cleanup a few typos
2010-04-07initial