jcalvinowens
Joined 13 years ago
Joined 13 years ago
Location: Bay Area, CA, USA
Remote: Yes
Willing to relocate: No
Technologies: C, C++, Linux, drivers, embedded, HPC, networking, video, radio, yocto
Résumé/CV: https://github.com/jcalvinowens/misc/blob/main/resume/resume.pdf
Email: [email protected]
I solve technical problems in exchange for monetary compensation. I do a little bit of everything: https://github.com/jcalvinowensI'm not considering full time roles at this time, only contract work. Thanks.
Location: Bay Area, CA, USA
Remote: Yes
Willing to relocate: No
Technologies: C, C++, Linux, drivers, embedded, HPC, networking, video, radio, yocto
Résumé/CV: https://github.com/jcalvinowens/misc/blob/main/resume/resume.pdf
Email: [email protected]
I solve technical problems in exchange for monetary compensation. I do a little bit of everything: https://github.com/jcalvinowensI currently have 20 hours/week available. I'm not considering full time roles at this time, only contract work. Thanks.
GCC has historically been a bit of a pig about -Os, my favorite example is on x86 where it will emit a runtime divide for a division by a compile time constant power of two because it saves a byte of text!
int fn(int n)
{
return n / 8;
}
..becomes: 0000000000000000 <fn>:
0: 89 f8 mov %edi,%eax
2: b9 08 00 00 00 mov $0x8,%ecx
7: 99 cltd
8: f7 f9 idiv %ecx
a: c3 ret
..versus: 0000000000000000 <fn>:
0: 8d 47 07 lea 0x7(%rdi),%eax
3: 85 ff test %edi,%edi
5: 0f 49 c7 cmovns %edi,%eax
8: c1 f8 03 sar $0x3,%eax
b: c3 retDDR5 on-die ECC detects and corrects one-bit errors. It cannot detect two-bit errors, so it will miscorrect some of them into three-bit errors. My understanding is that the on-die error correction scheme is specifically specially designed such that the resulting three-bit errors are mathematically guaranteed to be detected as uncorrectable two-bit errors by a standard full system-level ECC running on top of the on-die ECC. But I've never found a real authoritative reference that directly says that.
If a NAS has a 1G or even 2.5G NIC, improving the filesystem performance is a waste of time... the network is the bottleneck. My N100 two-disk btrfs-raid1 NAS hits line rate on a 2.5G NIC, that's all that matters to me.
{0}[calvinow@sousa ~/git/linux] git describe
v7.1
{0}[calvinow@sousa ~/git/linux] git clean -dffxq
{0}[calvinow@sousa ~/git/linux] zcat /proc/config.gz > .config
{0}[calvinow@sousa ~/git/linux] time make -skj32 tar-pkg
'./System.map' -> 'tar-install/boot/System.map-7.1.0'
'.config' -> 'tar-install/boot/config-7.1.0'
'./vmlinux' -> 'tar-install/boot/vmlinux-7.1.0'
'arch/x86/boot/bzImage' -> 'tar-install/boot/vmlinuz-7.1.0'
real 0m56.539s
user 18m41.863s
sys 2m8.754s
I do not use LLMs for writing comments at all.