Skip to content

Commit

Permalink
powerpc/vas: Drop poll_window_cast_out().
Browse files Browse the repository at this point in the history
Polling for window cast out is listed in the spec, but turns out that
it is not strictly necessary and slows down window close. Making it a
stub for now.

Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
  • Loading branch information
Sukadev Bhattiprolu authored and Michael Ellerman committed Nov 11, 2017
1 parent 0a2c2c2 commit 4963ac3
Showing 1 changed file with 17 additions and 17 deletions.
34 changes: 17 additions & 17 deletions arch/powerpc/platforms/powernv/vas-window.c
Original file line number Diff line number Diff line change
Expand Up @@ -1079,25 +1079,25 @@ static void poll_window_busy_state(struct vas_window *window)
}
}

/*
* Have the hardware cast a window out of cache and wait for it to
* be completed.
*
* NOTE: It can take a relatively long time to cast the window context
* out of the cache. It is not strictly necessary to cast out if:
*
* - we clear the "Pin Window" bit (so hardware is free to evict)
*
* - we re-initialize the window context when it is reassigned.
*
* We do the former in vas_win_close() and latter in vas_win_open().
* So, ignoring the cast-out for now. We can add it as needed. If
* casting out becomes necessary we should consider offloading the
* job to a worker thread, so the window close can proceed quickly.
*/
static void poll_window_castout(struct vas_window *window)
{
int cached;
u64 val;

/* Cast window context out of the cache */
retry:
val = read_hvwc_reg(window, VREG(WIN_CTX_CACHING_CTL));
cached = GET_FIELD(VAS_WIN_CACHE_STATUS, val);
if (cached) {
val = 0ULL;
val = SET_FIELD(VAS_CASTOUT_REQ, val, 1);
val = SET_FIELD(VAS_PUSH_TO_MEM, val, 0);
write_hvwc_reg(window, VREG(WIN_CTX_CACHING_CTL), val);

set_current_state(TASK_UNINTERRUPTIBLE);
schedule_timeout(HZ);
goto retry;
}
/* stub for now */
}

/*
Expand Down

0 comments on commit 4963ac3

Please sign in to comment.