Fixed a minor bug in level-3 packm management.

Details:
- Fixed a bug in bli_l3_packm() that caused cntl_t-cached packed mem_t
  entries to be released and then re-acquired unnecessarily. (In essence,
  the "<" operands in the conditional that guards the
  release-and-reacquire code block simply needed to be swapped.) The bug
  should have only affected performance (rather than the computed result).
  Thanks to Minh Quan for identifying and reporting the bug.
This commit is contained in:
Field G. Van Zee
2017-08-04 14:17:44 -05:00
committed by prangana
parent 6cf68a185d
commit 0c8afa546d

View File

@@ -115,12 +115,13 @@ void bli_l3_packm
// buffer, then a block has already been acquired from the memory
// broker and cached in the control tree.
// BUT, we need to make sure that the mem_t object is not associated
// with a block that is too small given the size of the packed matrix
// that we need, according to the return value from packm_init().
// As a sanity check, we should make sure that the mem_t object isn't
// associated with a block that is too small compared to the size of
// the packed matrix buffer that is needed, according to the return
// value from packm_init().
siz_t cntl_mem_size = bli_mem_size( cntl_mem_p );
if ( size_needed < cntl_mem_size )
if ( cntl_mem_size < size_needed )
{
if ( bli_thread_am_ochief( thread ) )
{