1. A method, comprising: maintaining a hierarchical packet scheduler, wherein the hierarchical packet scheduler includes one or more levels, each level including one or more schedulers, wherein one or more threads serve each level; and performing scheduling operations at each scheduler of the hierarchical packet scheduler by reading a portion of scheduler state from external memory.