Skip to content
Snippets Groups Projects
  1. May 06, 2013
    • Nadav Har'El's avatar
      We had a bug where we forgot to zero the .tbss section (the zero part of · e5c98d46
      Nadav Har'El authored
      the TLS), which led to preempt_counter not being intialized to zero and
      therefore preemption not being enabled for new threads.
      
      Such non-preemptable threads can monopolize their CPU and cause other
      threads with the misfortune of being assigned to this CPU to never run.
      
      This patch adds a simple test reproducing this bug. Because we don't have
      an implementation of __tls_get_addr(), we can't "extern" a TLS symbol
      (here sched::preempt_counter) from the test, and so I had to create a
      new sched::get_preempt_counter() function which I can "extern" from the
      test.
      e5c98d46
    • Avi Kivity's avatar
      main: zero thread-local bss section · 60985e55
      Avi Kivity authored
      Somehow this worked by accident, but we need to zero the .tbss section
      or random data will be used to initialize it.
      60985e55
    • Avi Kivity's avatar
      boot: adjust boot loader for loaded payload size dynamically · 53fa5724
      Avi Kivity authored
      Since we're packing the entire file system into the boot image, it has
      overflowed the 128MB limit that was set for it.
      
      Adjust the boot loader during build time to account for the actual loaded size.
      
      Fixes wierd corruption during startup.
      53fa5724
  2. May 02, 2013
  3. May 01, 2013
  4. Apr 30, 2013
Loading