►
From YouTube: SIG Node Resource Management WG, 2022/03/07: Kubelet Plugin Discussion: CPU Topology management (PM)
Description
Meeting notes and Agenda:
https://docs.google.com/document/d/1ALxPqeHbEc0QOIzJ3rWWPpwRMRlYDzCv0mu2mR4odR8/edit#
A
Somehow,
okay,
let's
see
right,
let
me
start
Sergey
and
and
Ed
thanks
for
joining
yeah,
so
just
to.
B
A
Some
context
where
we
are
currently
with
the
cap-
I,
don't
know
if
you
all
are
familiar
with
the
attribute
based
API,
so
we
were
discussing
how
to
bring
that
yeah
in
in
kubernetes
through
through
some
sort
of
if
we
could
leverage
some
of
the
resource
claim
mechanisms
available
with
gra
or
how
we
can
extend
that.
This
gives
a
short
example
which
we
used
in
the
past,
which
kind
of
attribute
based
requests
or
resources.
A
Cpu
resources
can
look
like,
so
you
have
standard
kind
of
clean
kind
of
mechanism
from
theory
in
our
kind
of
prototype
which,
for
which
I
have
a
demo.
Today
we
started
just
with
a
simple
Json
format
in
the
config
Maps.
Basically,
what
you
see
is
some
sort
of
set.
Of
course,
usually
we
with
those
setup
course
Define
pools.
Basically,
it
means
you
want
to
request
a
small
pool
of
two
cores
which
is
exclusive
with
some
basically
also
requiring
that
their
end
on
the
same
siblings.
A
Maybe
some
frequency
then
another
six
exclusive
cores,
without
additional
configuration
or
poor
shared
course.
Just
to
give
an
example
how
this
is
interpreted.
This
was
our
first
iteration
how
such
a
Json
thing
can
look
like,
and
we
worked
in
the
last
days
to
to
give
a
little
bit
more
details
about
possible
API.
A
So
we
were
thinking
to
cap,
basically,
first,
some
sort
of
identifiers
at
the
beginning
with
which
you
can
easily
identify
the
pools,
usually
similar
to
dra.
You
can
use
those
in
resource
classes
and
and
and
assign
them
to
Containers
quite
easily.
A
So,
basically,
you
give
some
some
IDs
for
each
kind
of
pool.
Then
the
other
thing
what
we
were
wondering,
if
it
would
make
sense,
is
to
add
some
sort
of
capacities.
So
we
could
so
that
we
can
relocate
those
pools
in
a
static
way,
something
similar
to.
If
you
think
about
the
static
policy,
then
we
could
predefine
those
pools
and
they
will
not
change
over
time
and
basically,
when
you
are
claiming
some
some
set,
of
course
the
pools
will
get
reduced
over
time
and
at
some
point,
user
will
get
error.
A
If
you
run
out
of
resources,
this
was
one
possibility
which
we
are
considering.
If
we,
if
such
kind
of
capacity
would
make
sense-
because
we
we
are
also
thinking
when
we
are
pulling
out
resources,
there
are
several
ways
how
to
do
it.
We
could
do
some
sort
of
if
you
are
in
in
in
the
case
that
you
want
to
pull
exclusive
resources.
Usually
those
are
pins,
so
you
will
see
if
you
are
requesting
an
exclusive
resource
in
most
of
the
cases
you
don't
want
to.
A
You
want
the
full
control
over
the
core
or
The
Logical
course.
That's
why
something
quite
guaranteed?
Qs
is
very
close
to
to
that
kind
of
wish.
A
A
We
have
several
possibilities.
We
can
widen
out
the
the
CPU
set
to
20
cores
and
fix
basically
the
CPU
shares
so
that
they
fit
this
kind
of
range
or
we
put
in
exclusive
kind
of
type.
We
we
put
limited
to
eight
cores.
A
Basically,
the
CPU
set
is
Max
8,
of
course,
and
then
then,
basically,
it
can
burst
between
six
and
eight
dependent
on
on
the
application,
and
the
more
interesting
case
is
the
shared
where
in
that
case,
we
again
Define
a
range,
but
there
are
multiple
ways
how
you
could
deal
with
with
shared
again.
This
could
be
limited
just
to
a
CPU
set
of
four
cores,
or
we
could
limit
it
to
the
complete
eight
course
and
give
CPU
shares
so
that
they
can
work
on
the
80
course.
A
The
idea
of
the
shared,
who
is
basically,
you,
can
put
any
kind
of
Bots
which
requests
shared
resource
on
that
exclusive
resource.
You
cannot
put
other
resources
on
on
it.
They
are
not
shared,
so
they
they
will
be
not
allowed
to
overlap
and
yeah
that
that
was
roughly
what
we
were.
A
The
order
currently
gives
it
the
information,
so
we
assume-
or
we
are
defining
the
the
Maps
or
the
Json
in
a
way
that
the
truth
have
the
same
cardinality
this
list.
Basically
it
has
always
the
cardinality
of
three
all
across
the
Json.
So
basically,
if
you
look
to
the
third
place
of
the
list
is
corresponds
to
the
you
can
find
out
the
CPU
attributes
for
it
it's
basically
matching
shared.
So
the
the
position
in
the
list
gives
us
the
calls
all
across
the
list
more
or
less.
C
And
I
didn't
quite
understand
what
the
pull
means.
Is
it
something
that
we
expect
machine
to
have
or.
A
Basically,
you
are
requesting
a
pool,
or
this
was
just
a
something
which
we
wanted
to
throw
to
in
the
conversation
today.
If
such
kind
of
capacity
would
make
sense.
A
So
originally
we
were
thinking
just
to
claim
course
based
on
the
available
resources
on
the
machine,
but
we
could
also
Define
some
sort
of
capacities,
so
we
could
pre-allocate
the
pool
and
then
start
pulling
out
of
the
boobs.
But
if
there
are
not
enough
course
on
a
certain
system
to
Kindle
this
pull
request,
it
will
fail
right.
A
So
the
the
pool
is
the
upper
limit,
so
your
shared
course
can
be,
or
you
can
use
a
Max
80
cores
that
is
shared.
Then
you
have
10
and
20
of
the
other
two
two
cases.
C
A
Is
part
of
the
claim,
so,
basically
it's
defined
in
the
in
this
Json
configuration
map
which
is
attached
to
the
resource,
claim
right.
A
The
other
kind
of
aspects
which
we
were
considering
to
add
to
the
spec
is
how
to
control
Numa.
We
we
have
use
cases
where
we
need
pneuma
device,
Affinity,
basically
Network,
affinity
and
stuff,
like
that.
So
we
were
thinking
to
Define
that,
as
some
sort
of
close
to
a
binary
condition,
there's
usually
the
Numa
device
will
be
picked
by
another
Plug-In
or
by
another
system.
Let's
say
device
Plugin
or
a
dra
plugin.
A
We
put
require
this.
This
stuff
will
be
executed
after
the
the
device
was
picked
and
we
could
require.
Basically,
we
want
the
device
Numa
Affinity
to
the
selected
device.
We
we
prefer.
Let's
say
it's:
it's
good
to
have
no
more
Affinity
to
the
selected
device,
but
it's
not
a
must
and
then
we
don't
care
something
like
this,
this
kind
of
options-
and
we
we
were
thinking
similar
for
memory,
Affinity
memory,
Affinity,
basically
pointing
back
to
memory
controllers.
So
basically
we
we
were
thinking
to
have
in
more
like
kernel,
style
definition.
A
Manner
binds
required
means.
Basically
that's
you
are.
You
require
to
be
on
this
to
have
to
be
on
the
same
socket
as
as
the
memory
controller.
What
you
need
so
bind
preferred,
so
you
try,
but
it's
not
a
must,
and
then
we
have
something
which
corresponds
a
little
bit
to
today's
Numa
spread
options.
If
you
think
about
topology
manager,
it's
interleaving,
basically,
that
you
can
interleave
memory
controllers.
A
Right
and
then
we
might
need
additional
parameters
later
for
a
huge
page
handling
and
and
so
on,
right.
C
Sasha
was
telling
me
about
this
scenario
when
some
Modern
Hardware
has
this
memory.
That
kind
of
bound
to
tune
so
I
understand
that
we
have
some
oversimplified
model
right
now,
with
CPU
manager,
topology
manager
and.
D
C
Map
and
you
trying
to
go
one
step
forward
here
right
so
a
little
bit
more
involved
like
you
you're
trying
to
describe
every
single
pull
and
like
how
much
Auto
School
we
take
and
how
to
find
resources.
C
A
We
might
need
to
extend
it
over
time.
I
think
the
the
idea
is
to
cover
at
least
Hardware,
which
is
coming
in
the
next
several
years,
at
least
also.
If
you
read
further,
we
want
to
to
deal
with
core
siblings
and
cluster
siblings,
so
they
are
right.
We
we
will.
We
are
thinking
according
to
to
trying
to
cover
the
needs
of
Hardware
coming
in
the
next
I,
don't
know,
let's
say
three
to
five
years:
scope.
C
Just
more
details
to
be
exposed
to
Cluster
admin,
so
cluster
admins
will
like.
Is
it
something
that
can
be
Auto
discovered
out
of
the
machine
or
it
should
be
something
the
driver
will
know
how
to
be
configured.
C
A
This
this
yeah,
so
this
is
responsibility
of
the
user,
the
only
thing
which
we
are
not
sure
if
it's
a
user
responsibility
is
this
capacity
pool
Pink
So.
Theoretically
this
this
can
be
moved
out
where
it's
something
which
is
not
needed,
but
all
the
other
options.
We
see,
there's
responsibility
of
the
user.
Usually
it's
yeah!
A
That
user
wants
his
application
to
be
affinitized
close
with
the
device
or
he
wants
an
exclusive
core
or
a
shared
core
right
or
even
both
in
in
a
set
of
containers.
Right.
C
Okay
so
and
yeah
so
user
will
declare
that
yeah
this
capacity
doesn't
fit
in
my
mental
mode,
like
I
was
that's
my.
A
Optional,
currently
that
the
reason
for
the
capacity
is
the
if
we
want
to
how
we
deal
with
this
kind
of
burstable
classes,
more.
A
You
have
something
quite
burstable
if
you
think
about
standard
burstable
and
best
efforts,
Bots
and
containers.
Currently
in
kubernetes,
you
get
the
cool
set
CPU
set
of
available
resources
on
the
system
so
to
to
guarantee
that
we
have
an
exclusive
course.
We
need
something
like
Dynamic
policy,
more
or
less.
A
We
will
need
to
squeeze
down
over
time
this
kind
of
burstable
and
best
efforts,
cases,
and
that's
why
we
were
thinking
such
kind
of
capacity
can
help
us
start
small
with
with
a
static
kind
of
rebooked
resources,
but
or
the
other
way
around
this.
If
you
have
a
shared
pool
and
such
kind
of
burstable
definition
we're
limited
to
four
this,
this
will
work
too.
A
C
Don't
know
how
many
more
slides
do
we
have,
but
I
I
really
want
to
test
some
scenario
on
this
and
if
it
hits
this
model,
so
somebody
came
up
with
scenario
saying
it's
really
about
sidecars.
So
if
you
have
a
job
that
is
really
CPU
intensive,
it
wants
exclusive
course
it
wants
some
Numa
Affinity
it
wants
like
it
wants
to
be
executed
really
fast
and
it
knows
what
it
wants.
C
But
then
you
also
want
to
run
some
Metric
sidecar
on
the
same
port
that
will
report
that
it's
still
alive
and,
like
maybe
CPU,
like
some
metrics,
like
what?
How
many,
how
much
things
for
protest
and
stuff
like
that,
and
you
don't
really
care
about
this
metrics
thingy,
because
it's
metrics
container
it
can
run
on
shared
CPUs
for
all
you
know
like
you,
you
don't
care
about
it
like
you,
you
just
need
some
resources
for
it
to
run.
Can
it
be
expressed
like
this
resource
claim?
Will
look
like
I
mean
it
will?
A
Yeah,
so
you
you
could
basically
your
performance
stuff.
Let's
say
if
we
want
to
I
can
write
here
so
basically
yeah.
Let's
say
your
performance
stuff,
you
you
have
two
one
for
the
sidecar
and
one
for
the
main
app.
So
your
main
app,
let's
say
it,
wants
I,
don't
know
how
many
cores,
maybe
two,
so
you
will
get
two
pinned
cores
and
then
let's
say
you
want.
You
have
the
sidecar,
maybe
the
the
sidecar.
A
If
it
uses
just
one
core,
you
define
white
one
chord
for
the
shared
pool,
so
it
ends
on
a
different
CPU
set
if
you're
a
sidecar.
It's
it's
some
sort
of
burstable
thing.
Maybe
you
can
Define
one
to
five
cores.
A
Writes
the
the
question
now
is
we
have
several
possibilities:
how
to
deal
with
the
burstable
case.
We
can
limit
it
through
capacity
or
we
can
limit
it
based
on
the
available
CPUs
on
the
platform.
So
right,
if
your
platform,
let's
say
had
to
originally
40
cores,
we
can
take
out
two
for
your
exclusive
fast
container
and
we
can
give
the
the
the
the
rest
of
CPUs
as
a
CPU
set,
basically
for
your
sidecar
and
with
with
this
kind
of
CPU
share.
A
Questions
the
containers,
usually
in
the
yeah-
you
you
see
here,
you
you
have
to
specify
in
in
your
container
what
what
you
want
to
claim
the
okay
most
probably
the
names
are
a
little
bit
wrong,
so
you
you
can
specify
in
in
resources
a
claim,
so
this
this
is
how
you
point
to
your
claim:
It's.
Usually
the
the
template
has
the
name.
So
this
this
should
be
resource.
A
So
and
then
Additionally
you
have
other
options
in
in
this
stock.
You
can
specify
so
you
see
that
it's
per
container
you
have
the
claim,
but
there
is
also
another
option
to
inside
the
claims
to
specify
resource
class
I
think
it
was
called
it's
part
of
the
array,
spec
resource
class.
A
B
A
Be
and
then
your
sidecar
is
basically
S5,
let's
say
just
as
an
example
right.
A
So
the
if
this
this
was
the
okay
in
this
case
was
a
second
container
without
claim.
But
if
you
get
a
container
with
a
claiming
again
the
resource
stuff,
you
could
specify,
after
that
another
resource
class
and,
let's
say
basically
the
the
shared
resource
class,
and
we
will
know
to
pull
in
to
consider
the
basically
the
second
element
of
the
allocation
kind
of
attribute
list
for
it.
For,
for
your.
C
Okay
and
we'll
cover
direct
scenario:
Derek
was
asking
about
scenario
when
all
system
ports
needs
to
be
like
system
and
static,
Port
needs
to
be
assigned
to
specific
set
of
cores
and
all
the
rest
of
the
course
needs
to
be
assigned
to
like
workload.
Ports.
Is
it
something
that
can
be
pressed
here
or
it's?
It
doesn't
cover
the
scenario.
A
The
system
resources
we
we
were
thinking
to
handle
similar
to
how
it
they
are
handled
today,
so
you
have
reserved
CPUs,
you
define
them
by
cubelet
configuration
and
and
then
they
are
removed
out
of
the
set.
Basically,
it's
not
non-available
CPUs.
So
basically
we
will
take
the
the
standard
mechanism,
how
you
define
system
resources
as
you
have
it
today
and
forward
it
to
our
manager
and
do
and
remove
them
from
the
setup
available
resources
just
to
maybe
to
give
it
as
an
illustration,
I
have
this
kind
of
picture.
A
Let's
say:
if
you
get
available
resources,
I
will
paint
it
a
little
bit.
So
you
you
said
when
starting
tablets
I
want
two
two
cores
so
two
cores
to
be
system:
resources.
A
As
we
do
it
today
in
cubelet,
we
will
read
this
configuration
through
the
new
manager
through
the
CCI
manager
and
remove
them,
so
what
our
manager
knows
at
any
time
how
many
available
resources
we
have.
A
So
if
you
started
with
system
resources,
two
cores
so
basically
the
initial
set
will
be
eight,
a
chair
of
course,
eight
eight
exclusive
course
basically
depends
you
get
four
four
pairs
for
for
hyper
threats
or
hyper
trading
pairs,
bonus
that
that's
the
at
least
the
approach
of
what
I
was
thinking
to
start
with
just
similar
to
the
current
configuration.
What
we
have
that
we
we
don't
do
it
don't
give
the
the
it's
more
administrator
kind
of
configuration,
and
we
we
make
sure
that
we
take
it
into
account.
C
Okay
and
when,
if
you
want
to
schedule
ports
on
this
reserved,
CPUs.
C
Right
I
think
that
was
a
scenario
that
Derek
wanted
to
investigate:
I,
think
they're,
doing
it
through
crier
right
now.
So
cryo
has
this
way
to
pin
system
ports
on
specific
CPUs
and.
D
A
Or
they
will
be
pinned
more
or
less
to
usually
like
yeah.
If
you
specify
reserves
CPUs
2,
we
will
give
the
first
two
cores,
basically
on
the
system
or
something
so
yeah
Supply,
which
of
course,
to
return
us
so
yeah,
I,
think
or
I.
Don't
know,
usually
the
way
how
it
was
done
before
it
was
just
counts,
but
I
don't
know
if
you
can,
if
it
makes
sense
to
configure,
which
course,
maybe
it
makes
sense
to
to
to
configure
that
you
want
them
on
both
sockets
or
something
but
yeah.
D
I
think
say:
wait
who
owns
that
piece.
So,
whether
or
not
we
want
to
continue
to
do
it
through
cryo
or
if
Derek
would
like
us
to
do
it
through
these
plugins
and
just
send
over
the
information.
But
the
information
is
going
may
include,
which
Numa
Zone
and
what
type
of
core.
So,
if
we're
talking
about
cases
where
architectures
are
coming
up
with
a
combo
of
proficiency,.
A
C
I
I
think
and
again
I
understand
why
I
asking
about
it
from
my
perspective,
I
think
what
dark
scenario
is
that
all
these
like?
They
run
a
lot
of
demons
and
some
static
pool,
and
they
want
to
make
sure
that
those
static
and
demons
only
occupy
specific
pool
of
CPUs
and
they
don't
try
to
execute
on
any
other
CPU.
So
all
other
CPUs
are
allocated
for
workload
so
like
there
are,
customers
would
know
that
those
CPUs
are
not
accounted
for
any
workload
and
everything
else
is
workload
exclusive.
A
A
C
Yeah
and
I'm
asking
this
question
because
I
want
to
understand
is
this
cap?
Limiting
to
this
is
what
I
want.
Please
figure
out
how
to
give
me
that
versus,
like
you
also
specify
like
there
is
also
component
of
it
that
you
know
how
system
looks
like,
and
you
know
how
your
request
will
mop
into
actual
system
and
maybe
like
scheduler,
will
even
know
like
whether
your
workload
will
fit
into
the
system
or
not
fit
into
the
system,
and
it
can
be
done
universally.
A
White
user
will
know
that.
Let's
say
my
application
is
memory
Bound.
In
that
case
it's
good
to
spread
across
all
memory
controllers,
so
I
will
user
will
specify
that
and
let's
say
user
knows
that
my
application
needs
to
to
be
pinned
and
then
also
yeah,
the
spreading
of
controllers.
So
it's
more
not
really
knowing
the
hardware
but
knowing
the
nature
of
the
application
and
then
requesting
requesting
the
right
or
giving
a
requests
which
shoots
should
find
the
hardware
which
fits
fits.
The
needs
right.
Okay,
yeah.
A
Yeah
that
that's
what
we
are
after
so
then
we
get.
Also
in
the
previous
meeting
we
went
a
little
bit
through
some
architecture
decisions
we
got.
Currently
we
are
considering.
A
Basically,
the
idea
is
to
have
a
new
manager,
the
CCI
manager,
which
can
understand
the
airway
requests
or
basically
claims
we,
the
we
could
we
or
we
will
reuse
completely
the
controller
components
provided
by
dra.
So
we
can
recreate
or
use
the
same
API
to
create
controllers
to
handle
the
scheduling
pieces.
A
What
and
then
originally
we
we
were
thinking
to
have
still
an
old
driver
which
which
can
handles
the
reservation
of
claims,
but
as
discussed
today,
basically
Kevin
was
suggesting.
We
don't
need
that
piece.
We
can
actually
Implement
everything
in
one
component,
so
we
could
Implement
the
reservation
kind
of
handlers
inside
the
CCI
Drive
CCI
Chandler,
the
CCI
calendar
is
the
one
which
the
CCI
manager
will
call.
So
basically,
our
kind
of.
D
A
For
for
allocating
the
the
claims
will
be
completely
independent
from
the
node
driver.
We
will
not
need
an
old
driver
and
we
will
just
reuse
the
controller
and
the
resource
class.
The
resource
class
allows
us
basically
to
to
pick
to
pick
to
basically
process
spots
which
which
kept
claims.
So
we
we
are
applying
the
driver
on
the
on
on
the
pots
having
a
resource
class
with
a
driver
name
with
the
right
driver
name,
but
I
will
show
that
we
we
have
it
in
the
Prototype.
A
Basically,
it's
the
the
same
mechanism
like
in
theory
where
your
your
kind
of
resource
claim
it's
basically
some
called
maps
to
a
driver.
So
this
is
one-to-one
basically
similar
for
us,
then
suggestion
from
Kevin
from
Nvidia
was
if
we
can
get
rid
or
if
we
can
handle
or
make
our
CCI
components
on
the
driver's
side
being
able
to
handle
the
whole
thing
without
additional
node
driver.
A
So
he
was
suggesting
that
we
have
one
single
components:
independent
from
the
the
array
node
driver,
which
implements
the
the
logic
which
we
need
to
handle
the
location
or
even
the
reservation
of
the
resource
requests,
as
they
are
a
little
bit
different
compared
to
the
resource
requests.
What
you
have
for
devices.
This
will
allow
us
to
nicely
split
them
away
from
from
the
original
gra,
which
is
more
for
devices.
C
A
It's
a
remote
policy,
the
driver,
actually
it's
it's
helping
that
you
could
handle
a
set,
a
set
of
pots,
not
all
so
you
could
still
run
other
Bots
through
the
standard
CCI
manager
without
going
through
driver.
This
is
one
one
of
the
benefits
of
the
driver,
but
also
another
kind
of
benefit
is
you
can
do
similar
kind
of
claim
or
you
can
yeah?
The
the
benefit
of
the
driver
is
from
scheduling
perspective.
A
If
you
have
this
kind
of
complex
or
yeah
attribute
set,
how
do
you
schedule?
It
becomes
a
question
because
if
you
think
about
standard
pots,
you
have
the
scheduler,
which
does
runs
a
scoring
algorithm.
A
So
if,
if
the
podcast,
basically
a
resource
requests
and
limits,
the
scoring
algorithm
will
start
filtering
nodes.
So
this
is
where
the
driver,
together
with
a
controller
component,
takes
over
on
the
scheduling
side
so
or
it
helps
on
the
scheduling
side,
determine
the
right
node.
A
The
condition
here
is
basically
that
the
Bots,
using
these
claims,
similar
to
the
example,
does
not
have
any
any
kind
of
limits
and,
in
you
see
in
the
resources,
I'm,
not
adding
resource
limits
and
resource
requests,
as
they
are
considered
by
scheduler.
Usually.
D
A
If
I
add
those
my
the
the
scheduler
will
score
the
pots
or
according
to
requests
and
and
the
notes,
so
we
are
currently,
we
could
avoid
that
in
Alpha
version,
by
keeping
them
more
or
less
best
effort.
A
So
further
kind
of
optimization
on
on
the
scheduler
side-
most
probably
it's
possible,
but
we
will
think
about
it
in
literally
in
better
Pace.
If
we
can
do
some
scheduler
processing
of
claims
and
stuff
like
that.
So
this
is
still
to
be
investigated,
but
I
think
for
starts
the
we.
We
could
basically
rely
or
require
that
that
such
kind
of
thoughts
having
a
CPU
Drive,
the
CPU
request,
claims
more
or
less
they.
A
They
don't
should
not
Provo
or
if
you
provide
request
limits
and
so
on
the
then
the
scheduling
can
further
limit
the
set
of
nodes
well
where,
because,
usually
the
array
controller,
if
you
think
about
the
area
controller,
it's
run
after
scheduling.
A
A
C
Isn't
a
lot
of
touring
relying
on
requests
and
limits?
So
it'll
be
interesting
for
the
student
to
adapt
to
understand
this
resource
claims.
C
D
D
Because
the
other
thing
that
you
run
into
with
users
is
that
it's
yours,
but
they
don't
necessarily
know
what
they're
running
on.
So,
if
you're,
using
a
very
large
heterogeneous
cluster
and
you're,
just
getting
scheduled
for
Cores
for
like
a
1.5
gigahertz,
is
going
to
be
very
different
than
gigahertz.
C
C
That
those
attributes
would
be
driver
specific
because
they'll
be
single
driver
covering
everything
you
just
want
to
develop.
The
driver
faster.
D
D
Scheduled
on
on
your
chip,
one
types
right
and
those
drivers
are
only
installed
there
and
then
your
driver
is
scheduled.
Also
on
you
know
your
two
types
right,
and
so,
when
you
do
the
scheduling
it
looks
for
so,
if
we
were
just
doing
exclusive
and
shared,
we
don't
care,
you
got
scheduled
anywhere
and
then
your
driver
handles
it.
Otherwise,
you're
going
to
have
to
get
scheduled
only
to
those
nodes
that
have
they
available
attributes.
C
Okay,
yeah
I,
think
I
think
I
understand
the
reasoning.
My
comment
still
stands
like.
There
are
two
link
that
looks
at
the
requests
and
limits,
inclusion,
monitoring
and
such,
and
it
will
be
interesting
how
those
ports
will
be
handled
and
whether
we
need
to
do
something
to
satisfy
that.
Maybe
some
calculated
requests
and
limits
will
be
needed.
C
C
It's
I,
don't
know
specific
scenario.
It
may
be
if
customers
just
monitor
like
been
packing,
because
there
are
nodes,
they
may
have
troubles
not
having
a
requests
and
limits
on
on
specific
ports,
because
they
calculate
this
bin
packing
using
those
fields
and
not
having
these
fields
will
require
them
to
change
the
tooling
or
like
their
children,
could
be
confused.
A
So
that
that's
more
or
less
what
we
had
for
from
from
slight
perspective,
we
have
10
minutes,
maybe
for
a
short
demo.
If
this
is
fine
or
some
further
questions.
B
Yeah
I
I
have
a
question
so
how
scheduler
would
know
that
it
shouldn't
schedule
workloads
that
actually,
like
don't
reference
any
claims
to
to
that
note,
which
is
like
under
control
of
of
this
CCI
manager.
B
A
The
the
notes
or
the
the
kind
of
thoughts
can
be
scheduled
on
that
on
that
note
it
can
go,
but
what
we
should
make
sure
is
that,
after
that,
if
the
Bots
goes
and
consumes
resources,
we
have
to
take
that
into
account.
So
we
have
to
subtract
the
resources,
but
we
we
are
not
rejecting
rejecting
scheduling
bots
on
that
note,
because
it
runs
the
CCI
manager
to
the
contrary.
We
allow
it,
but
we
just
take
that
into
account.
A
So
basically,
if
you
schedule
a
normal
burstable
container,
it
goes
through,
but
we
we
want
to
to
make
sure
that
later,
if
we
put
an
exclusive
container,
they
don't
overlap
right.
A
A
Basically,
the
the
the
CCI
manager
will
will
be
responsible
to
to
basically
Define
the
CPU
set
of
this
kind
of
Bots
incoming
pods,
which
are
not
Scandal
by
driver.
Okay,.
B
So
it
will
be
handling
like
everything
so
the
those
spots
that
that
actually
require
some
CPU
and
memory
sources
and
as
well
ports
that
reference
claims
right
right,
correct.
A
The
the
goal
would
be
later
in
data
if
we
can
maximize
call
3
use.
So
there
is
a
lot
of
code
already
available
to
handle
the
standard
cases,
the
the
static,
CPU
management
and
so
on.
Maybe
we
can
stage
out
some
of
the
codes
make
it
available
also
for
the
CCI
manager,
so
that
we
can.
B
A
Just
instantiate
certain
yeah
kind
of
type
which
which
does
that
for
us,
we
will
be
looking
into
that.
B
B
A
This
was
the
original
idea.
Now
we
are
changing
that
thread.
2
will
disappear.
We
we
were
thinking
to
use
the
the
controller
we
required
the
node
driver.
Our
thinking
was
wrong.
After
discussing
that
with
Kevin,
he
he
suggested
that
we
get
rid
of
the
first
thread
and
basically
implement
the
handling
for
all
what
we
need
to
allocate
the
the
the
claim
inside
the
CCI
Handler
make
it
basically
Standalone
right
thread.
One
will
go
away
honestly.
B
And
how
kublet
would
this
team
between
two
types
of
of
PODS,
those
that
reference,
the
array
claims
and
those
that
reference,
this
CCI
claims.
A
There's
the
driver
name
and
the
second
thing
is:
we
use
another
socket,
so
we
usually
for
Geary.
You
have
bar
lip
d-array
kind
of
socket
to
do
the
registration.
We
will
do
a
barlip
CCI
to
to
handle
the
registration
separately
and
they
don't
get
mixed.
So
this
is
the.
C
Does
Kevin
Envision
any
collaboration
between
the
array
and,
like
this
driver,
do
we
need
to
schedule
a
swimming
post,
I.
A
Saw
from
him
some
sort
of
future
cap
where
he
could
allow
multiple
controllers
somehow
to
communicate
or
to
take
Joint
decisions,
maybe
it
would
be
interesting
in
the
future
to
make
joint
decisions
on
the
controller
side
if
you
have
some
devices
into
play,
so
this
is
something
which
which
I
would
we
we
here?
A
We
might
have
also
some
use
of
it,
because
we
will
need
the
device
Affinity
informations,
so
I
think
this
future
kept
with
multiple
controllers
and-
and
he
was
pointing
to
that-
that
it
could
deal
with
some
of
the
topology
management
challenges.
What
what
are
currently
there
in
this,
this
future
concept.
So
most
probably
there,
there
is
some
place
for
cooperation
there.
I
guess.
A
I
think
it
will
be,
as
he
has
a
cap
for
that
I
assume.
He
needs
to
add
something
to
cubelet
before
that:
I'm,
not
completely
deep
in
his
his
cap,
how
to
support
multiple
controllers
but
I
assume
there
is
some.
Some
change
still
needed.
C
Okay,
yeah
I
mean
to
be
honest,
completely
honest
about
it.
I
I
can
give
a
lot
of
feedback
on
like
how
architecture
they
put
like
different
components
in
different
places.
My
biggest
problem
is
I.
Don't
know
all
the
scenarios
that
people
may
need
with
regards
to
like
I
want
to
schedule
it
this
way,
but
then
I
want
to
do
this
like
energy,
efficient,
View
and
I
want
this
device
to
be
very
close
to
me.
So
I
don't
know
this
scenarios
like
any
help
you
can
provide
on
highlighting
those
scenarios
are
important.
C
C
So
this
will
help
understand
whether,
like
like
design
choices,
because
I
can
point
on
like
this
may
not
be
working
for
this
kind
of
scenario,
but
I
don't
I
have
no
idea
whether
how
important
the
scenario
I
will
definitely
ask
around
on
my
side
but
like
if
you,
if
you
already
know
that
it's
not
important
like
you,
can.
A
D
Because
some
of
it
has
to
do
with
the
fact
that
we're
looking
at
both
performance
and
sustainability,
they
both
come
from
HPC
type
backgrounds.
So
we've
seen
a
lot
of
what
those
look
like
that
we
don't
handle
in
kubernetes,
necessarily
that
yeah
that
one
of
the-
and
maybe
we
should
add
in
this
data
goals
and
still
minimize
pain
on
the
user.
As
far
as
understanding
system
architecture,
because
HPC
classically
user
has
to
understand
here
sure
we
don't
want
to
do
that
in
kubernetes.
C
Yeah,
for
instance,
one
problem
is
that
somebody
told
me
about
is
topology
manager
doing
wrong
decisions
instead
of
like
it
picks
up
wrong
number
first
and
then
it
cannot
schedule
anything
else
because,
like
it's
already
took
a
half
resources
of
like
big
pneumonauts
and
like
nothing
can
be
scheduled
there
any
longer.
C
A
Yeah
scheduling
is
here
a
little
bit
left
to
the
controller
writer.
So
if
the
the
way,
how
Lord?
If
also
this
future
kept
for
for
for
the
multiple
controller
stuff,
is
in
place,
yeah
I
I
think
it's.
It
becomes
important
how
the
controllers
handle
this
kind
of
decision
making
after
that,
so
it's
a
little
bit
externalized.
In
that
case,
the
decision
about
the
scheduling.