Hi everyone, I am a newcomer reading Go runtime code, and I noticed that ```go
type scavChunkData struct {
// Only the first 10 bits are used.
inUse uint16
// Only the first 10 bits are used.
lastInUse uint16
// gen is the generation counter from a scavengeIndex from the
// last time this scavChunkData was updated.
gen uint32
// Note: only 6 bits are available.
scavChunkFlags
}
```
in scavChunkData, we only use 1-bit of scavChunkFlags to indicate whether there is free pages in a chunk. This could be imprecise because we use the following code to compute whether there are free pages,
```go
nofree = inUse == pagesInChunk
```
I think we could use a 10-bit counter to record how many pages are freed. Why go use a 1-bit flag instead of a 10-bit counter? Is it for performance reasons?