- Apr 14, 2013
-
-
Avi Kivity authored
-
Avi Kivity authored
Lost during the romfs conversion.
-
Avi Kivity authored
We use a polling thread to collect characters and place them in a queue.
-
Avi Kivity authored
Polling only, no interrupt yet.
-
Guy Zana authored
fo_read() and fo_write().
-
Nadav Har'El authored
sys_read and sys_write used to malloc a 40-byte uio structure, and never freed it. Fixed it by free()ing before returning from these functions.
-
Avi Kivity authored
-
Nadav Har'El authored
object::unload_segments() had a typo - it called load_segment() instead of unload_segment(). This obviously caused a memory leak.
-
- Apr 11, 2013
-
-
Nadav Har'El authored
Implemented a backtrace() function API-compatible with glibc's function with the same name. I need it for the leak detector (to determine which allocations come from the same call tree), but it can also be useful for other things, and perhaps even used by some applications (I am guessing the JVM does not use it, though). My implementation uses the "_Unwind*" functions which are part of gcc's runtime libgcc_s, so they are supposedly correctly synchronized with the way gcc actually keeps track of the call hierarchy. If I understand correctly, these functions use a cut-down version of libunwind which is included in libgcc_s. I also wrote an implementation using libunwind directly (left in the code in #if 0), but couldn't get it to compile because of library dependency hell.
-
Avi Kivity authored
Minor code simplification.
-
Avi Kivity authored
Avoids a zombie.
-
Avi Kivity authored
If we fail to match the file name, we need to release the buffer before bailing out.
-
Avi Kivity authored
We drop the buffer and fetch a new one, but we forget to return the new one to the caller for an eventual brelse(). This results in an assertion failure later on. Fix by making sure the caller sees the new buffer.
-
Avi Kivity authored
-
Avi Kivity authored
This allows running either testrunner.so, or one of the tests (e.g. test/tst-fpu.so), as they now both export the same entry point.
-
Avi Kivity authored
Used when names in an object may conflict with names in other objects.
-
Avi Kivity authored
-
Avi Kivity authored
-
Avi Kivity authored
-
Avi Kivity authored
Python has no pointers, so it doesn't support %p. Convert it to %016x.
-
Avi Kivity authored
-
Avi Kivity authored
-
Avi Kivity authored
Use: debug("foo %s %x\n", foo.x, foo.y); Instead of: debug(boost::format("foo %s %x\n") % foo.x % foo.y); note this uses boost::format, not *printf(), so size modifers ("%lx") are unneeded.
-
Avi Kivity authored
This is only causing confusion; change all callers to add '\n' explicitly and drop the optional argument.
-
Avi Kivity authored
Variable size trace records.
-
Avi Kivity authored
-
Avi Kivity authored
To conserve space, we now use variable size trace records. To avoid problems with wrap-arounds, and with recovering a complete entry at the head of the ring buffer, we don't allow a trace record to cross a 4096-byte boundary.
-
- Apr 10, 2013
-
-
Nadav Har'El authored
When out of memory in alloc_page() or malloc_large(), we used to produce mysterious assertion failures or aborts. Now print a more user-friendly "out of memory" error (and abort).
-
Nadav Har'El authored
To run the debug build, instead of "scripts/run.sh debug", use "scripts/run -d".
-
Avi Kivity authored
With a ring buffer, we need to know the size before writing to determine if we wrap around.
-
Dor Laor authored
Also fix the numbering.
-
Avi Kivity authored
On a 32-bit system, a 64-bit value need only be aligned to 32 bits, not 64. Change the code to reflect that.
-
- Apr 09, 2013
-
-
Christoph Hellwig authored
-
Avi Kivity authored
Tracepoint command line support.
-
Avi Kivity authored
Enable via command line.
-
Avi Kivity authored
usage: --trace=a,b,c,*foo* --trace=bar java.so ... Will match on tracepoint names.
-
Avi Kivity authored
e.g. enable_tracepoint("*function*");
-
Nadav Har'El authored
We used to have libz in bootfs.manifest, and now that it was removed, it needs to be put in usr.manifest... It is needed by Java to load the compressed jar.
-
Nadav Har'El authored
"osv info threads" used to show the switch_to() function for all non-running threads. Now, it attempts to skip "obvious" functions until finding a less obvious caller which initiated the final thread switch. Currently, the mechanism to define obvious functions is pretty crude - it just considers all functions in arch-switch.hh, sched.cc, sched.hh or mutex.hh, to be obvious, avoiding showing things like switch_to(), schedule(), wait_until(). In the future we can refine this definition. In my opinion it would be best if we could decide on one file (or a small set of files) which contain all these generic switching/waiting functions and we'll simply avoid showing anything from these files in "osv info threads".
-
Nadav Har'El authored
Since commit 5384840a which changed the way we remember a non-running thread's rip and rbp, "osv info threads" was broken and showed question marks for all non-running threads. Now it's fixed but always shows sched::thread::switch_to() as non-running threads indeed called this function last.
-