[roll] Roll fuchsia [kernel][arch] Add APIC ID utilities

We add utilities for fetching the APIC ID of the processor associated
with a CpuidIoProvider, as well as for partitioning a given APIC ID into
its consituent thread, core, die, and package IDs. This will be used in
a follow-up in a refactor of the topology enumeration in
//zircon/kernel/arch/x86/system_topology.cc. Shortcomings of the code
there today includes:
* offers fewer fallback means of enumeration
* does not look at leaf 0x1f for the V2 means of enumeration, which
should take precedence of leaf 0xb;
* does not check for the "topology extension" feature before consulting
AMD's topology leaves (which are reserved if not advertised);
* does not allow for zero-width IDs;
* does not distinguish between die and package IDs;
* does not make use of x2APIC IDs (only the initial 8-bit one of the
enumerating processor);
This and more is addressed in the new abstractions, and is tested
against the corpus.

Original-Bug: 61093
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/465058
Original-Revision: 977cbc547fb212d5bded4772eb7bce51049fe3be
GitOrigin-RevId: 719254418cb3513bc4ae7ea3c2d806d011989666
Change-Id: I82dd161eb8f490322019af57b3a3792b4cdb2400
1 file changed
tree: 7d096bf5a55d00ad237dd4750efba38d1f6527d0
  1. garnet/
  2. infra/
  3. peridot/
  4. third_party/
  5. topaz/
  6. zircon/
  7. flower
  8. jiri.lock
  9. minimal
  10. prebuilts
  11. README.md
  12. stem
  13. test_durations
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.

Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance via the IRC channel #fuchsia on Freenode.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.