[[!meta copyright="Copyright © 2010, 2011, 2012 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable id="license" text="Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled [[GNU Free Documentation License|/fdl]]."]]"""]] *Performance analysis* ([[!wikipedia Performance_analysis desc="Wikipedia article"]]) deals with analyzing how computing resources are used for completing a specified task. [[Profiling]] is one relevant tool. In [[microkernel]]-based systems, there is generally a considerable [[RPC]] overhead. In a multi-server system, it is non-trivial to implement a high-performance [[I/O System|community/gsoc/project_ideas/disk_io_performance]]. When providing [[faq/POSIX_compatibility]] (and similar interfaces) in an environemnt that doesn't natively implement these interfaces, there may be a severe performance degradation. For example, in this [[`fork` system call|/glibc/fork]]'s case. [[Unit_testing]] can be used for tracking performance regressions. --- * [[Degradation]] * [[fork]] * [[IPC_virtual_copy]] * [[microbenchmarks]] * [[microkernel_multi-server]] * [[gnumach_page_cache_policy]] * [[metadata_caching]] --- # IRC, freenode, #hurd, 2012-07-05 the more i study the code, the more i think a lot of time is wasted on cpu, unlike the common belief of the lack of performance being only due to I/O ## IRC, freenode, #hurd, 2012-07-23 there are several kinds of scalability issues iirc, i found some big locks in core libraries like libpager and libdiskfs but anyway we can live with those in the case i observed, ext2fs, relying on libdiskfs and libpager, scans the entire file list to ask for writebacks, as it can't know if the pages are dirty or not the mistake here is moving part of the pageout policy out of the kernel so it would require the kernel to handle periodic synces of the page cache braunr: as for big locks: considering that we don't have any SMP so far, does it really matter?... antrik: yes we have multithreading there is no reason to block many threads while if most of them could continue -while so that's more about latency than throughput? considering sleeping/waking is expensive, it's also about throughput currently, everything that deals with sleepable locks (both gnumach and the hurd) just wake every thread waiting for an event when the event occurs (there are a few exceptions, but not many) ouch # IRC, freenode, #hurd, 2012-09-13 {{$news/2011-q2#phoronix-3}}. the phoronix benchmarks don't actually test the operating system .. braunr: well, at least it tests its ability to run programs for those particular tasks exactly, it tests how programs that don't make much use of the operating system run well yes, we can run programs :) those are just cpu-taking tasks ok if you do a benchmark with also i/o, you can see how it is (quite) slower on hurd perhaps they should have run 10 of those programs in parallel, that would test the kernel multitasking I suppose not even I/O, simply system calls no, multitasking is ok on the hurd and it's very similar to what is done on other systems, which hasn't changed much for a long time (except for multiprocessor) true OS benchmarks measure system calls ok, so Im sensing the view that the actual OS kernel architecture dont really make that much difference, good software does not at all i'm only saying that the phoronix benchmark results are useless because they didn't measure the right thing ok