1. 06 May, 2004 1 commit
    • Venkatesh Pallipadi's avatar
      [PATCH] bug in bigsmp CPU bringup · d1a1ac7b
      Venkatesh Pallipadi authored
      There is an bug in bigsmp sub-architecture, due to which it will not
      enable all the CPUs when the BIOS-APICIDs are not 0 to n-1 (where n is
      total number of CPUs). Particularly, only 2 CPU comes up on a system
      that has 4 CPUs with BIOS APICID as (0, 1, 6, 7).=20
      
      The bug is root caused to check_apicid_present(bit) call in smpboot.c,
      when bigsmp is expecting apicid in place of bit.
      check_apicid_present(bit) in bigsmp subarchitecture checks the bit with
      phys_id_present_map (which is actually map representing all apicids and
      not bit).
      
      One solution is to change check_apicid_present(bit) to
      check_apicid_present(apicid), in smp_boot_cpus().  But, it can affect
      all the other subarchitectures in various subtle ways.  So, here is a
      simple alternate fix (Thanks to Martin Bligh), which solves the above
      problem. 
      
      [ Confirmation from Martin:
      
           Looks fine, it's exactly the same fix we use for Summit.  Since
           we're using the other method instead of the bitmap, this check
           isn't needed, so we can just bypass it.  This way also has the
           great advantage of being isolated to the bigsmp subarch, so it only
           needs testing there ;-)
       ]
      d1a1ac7b
  2. 05 May, 2004 18 commits
  3. 04 May, 2004 4 commits
  4. 05 May, 2004 1 commit
  5. 04 May, 2004 16 commits