Hello, Jan.
On Tue, Nov 25, 2014 at 05:37:07PM +0100, Jan Kara wrote:
> On Thu 13-11-14 17:09:27, Tejun Heo wrote:
> > Implement set of pointers. Pointers can be added, deleted and
> > iterated. It's currently implemented as a thin rbtree wrapper making
> > addition and removal O(log N). A
Hello, Jan.
On Tue, Nov 25, 2014 at 05:37:07PM +0100, Jan Kara wrote:
On Thu 13-11-14 17:09:27, Tejun Heo wrote:
Implement set of pointers. Pointers can be added, deleted and
iterated. It's currently implemented as a thin rbtree wrapper making
addition and removal O(log N). A drawback
On Thu 13-11-14 17:09:27, Tejun Heo wrote:
> Implement set of pointers. Pointers can be added, deleted and
> iterated. It's currently implemented as a thin rbtree wrapper making
> addition and removal O(log N). A drawback is that iteration isn't RCU
> safe, which is okay for now. This will be
On Thu 13-11-14 17:09:27, Tejun Heo wrote:
Implement set of pointers. Pointers can be added, deleted and
iterated. It's currently implemented as a thin rbtree wrapper making
addition and removal O(log N). A drawback is that iteration isn't RCU
safe, which is okay for now. This will be used
On 11/18/2014 07:55 PM, Tejun Heo wrote:
> Hello,
>
> On Tue, Nov 18, 2014 at 05:19:18PM +0800, Lai Jiangshan wrote:
>> Is it too ugly?
>
> What is "it"? The whole thing? percpu preloading? I'm just gonna
> continue assuming that you're talking about preloading. If you think
> it's ugly,
On Fri, 14 Nov 2014 08:12:02 -0500 Tejun Heo wrote:
> Hello, Andrew.
>
> On Thu, Nov 13, 2014 at 02:40:41PM -0800, Andrew Morton wrote:
> > In that case tjpointer_add() would need to do a kmalloc() for each inode
> > which is added to the bdev/cdev, just as ptrset_add() is doing.
> >
> > That
Hello,
On Tue, Nov 18, 2014 at 06:56:29PM +0300, Azat Khuzhin wrote:
> On Thu, Nov 13, 2014 at 05:09:27PM -0500, Tejun Heo wrote:
> > +int ptrset_add(void *ptr, struct ptrset *set, gfp_t gfp)
> > +{
> > + struct ptrset_elem *elem;
> > + struct rb_node *parent, **slot;
> > +
> > + elem =
On Thu, Nov 13, 2014 at 05:09:27PM -0500, Tejun Heo wrote:
> +int ptrset_add(void *ptr, struct ptrset *set, gfp_t gfp)
> +{
> + struct ptrset_elem *elem;
> + struct rb_node *parent, **slot;
> +
> + elem = kmalloc(sizeof(*elem), gfp);
> + if (!elem && !in_interrupt()) /* see
Hello,
On Tue, Nov 18, 2014 at 05:19:18PM +0800, Lai Jiangshan wrote:
> Is it too ugly?
What is "it"? The whole thing? percpu preloading? I'm just gonna
continue assuming that you're talking about preloading. If you think
it's ugly, please go ahead and explain why you think it is.
It's
On 11/14/2014 06:09 AM, Tejun Heo wrote:
> Implement set of pointers. Pointers can be added, deleted and
> iterated. It's currently implemented as a thin rbtree wrapper making
> addition and removal O(log N). A drawback is that iteration isn't RCU
> safe, which is okay for now. This will be
On Thu, Nov 13, 2014 at 05:09:27PM -0500, Tejun Heo wrote:
+int ptrset_add(void *ptr, struct ptrset *set, gfp_t gfp)
+{
+ struct ptrset_elem *elem;
+ struct rb_node *parent, **slot;
+
+ elem = kmalloc(sizeof(*elem), gfp);
+ if (!elem !in_interrupt()) /* see
Hello,
On Tue, Nov 18, 2014 at 06:56:29PM +0300, Azat Khuzhin wrote:
On Thu, Nov 13, 2014 at 05:09:27PM -0500, Tejun Heo wrote:
+int ptrset_add(void *ptr, struct ptrset *set, gfp_t gfp)
+{
+ struct ptrset_elem *elem;
+ struct rb_node *parent, **slot;
+
+ elem =
On Fri, 14 Nov 2014 08:12:02 -0500 Tejun Heo t...@kernel.org wrote:
Hello, Andrew.
On Thu, Nov 13, 2014 at 02:40:41PM -0800, Andrew Morton wrote:
In that case tjpointer_add() would need to do a kmalloc() for each inode
which is added to the bdev/cdev, just as ptrset_add() is doing.
On 11/18/2014 07:55 PM, Tejun Heo wrote:
Hello,
On Tue, Nov 18, 2014 at 05:19:18PM +0800, Lai Jiangshan wrote:
Is it too ugly?
What is it? The whole thing? percpu preloading? I'm just gonna
continue assuming that you're talking about preloading. If you think
it's ugly, please go
On 11/14/2014 06:09 AM, Tejun Heo wrote:
Implement set of pointers. Pointers can be added, deleted and
iterated. It's currently implemented as a thin rbtree wrapper making
addition and removal O(log N). A drawback is that iteration isn't RCU
safe, which is okay for now. This will be used
Hello,
On Tue, Nov 18, 2014 at 05:19:18PM +0800, Lai Jiangshan wrote:
Is it too ugly?
What is it? The whole thing? percpu preloading? I'm just gonna
continue assuming that you're talking about preloading. If you think
it's ugly, please go ahead and explain why you think it is.
It's almost
Hello, Andrew.
On Thu, Nov 13, 2014 at 02:40:41PM -0800, Andrew Morton wrote:
> In that case tjpointer_add() would need to do a kmalloc() for each inode
> which is added to the bdev/cdev, just as ptrset_add() is doing.
>
> That might require a nasty preload thing. But really, for just two
>
Hello, Andrew.
On Thu, Nov 13, 2014 at 02:40:41PM -0800, Andrew Morton wrote:
In that case tjpointer_add() would need to do a kmalloc() for each inode
which is added to the bdev/cdev, just as ptrset_add() is doing.
That might require a nasty preload thing. But really, for just two
known
On Thu, 13 Nov 2014 17:27:36 -0500 Tejun Heo wrote:
> Hello, Andrew.
>
> On Thu, Nov 13, 2014 at 02:23:33PM -0800, Andrew Morton wrote:
> > This seems rather slow and bloaty. Why not
> >
> > struct tjpointer {
> > struct list_head list;
> > void *pointer;
> > };
> >
> > And then
Hello, Andrew.
On Thu, Nov 13, 2014 at 02:23:33PM -0800, Andrew Morton wrote:
> This seems rather slow and bloaty. Why not
>
> struct tjpointer {
> struct list_head list;
> void *pointer;
> };
>
> And then callers do things like
>
> struct tjpointer *tjp;
>
> lock();
On Thu, 13 Nov 2014 17:09:27 -0500 Tejun Heo wrote:
> Implement set of pointers. Pointers can be added, deleted and
> iterated. It's currently implemented as a thin rbtree wrapper making
> addition and removal O(log N). A drawback is that iteration isn't RCU
> safe, which is okay for now.
Implement set of pointers. Pointers can be added, deleted and
iterated. It's currently implemented as a thin rbtree wrapper making
addition and removal O(log N). A drawback is that iteration isn't RCU
safe, which is okay for now. This will be used to remove
inode->i_devices.
Signed-off-by:
Implement set of pointers. Pointers can be added, deleted and
iterated. It's currently implemented as a thin rbtree wrapper making
addition and removal O(log N). A drawback is that iteration isn't RCU
safe, which is okay for now. This will be used to remove
inode-i_devices.
Signed-off-by:
On Thu, 13 Nov 2014 17:09:27 -0500 Tejun Heo t...@kernel.org wrote:
Implement set of pointers. Pointers can be added, deleted and
iterated. It's currently implemented as a thin rbtree wrapper making
addition and removal O(log N). A drawback is that iteration isn't RCU
safe, which is okay
Hello, Andrew.
On Thu, Nov 13, 2014 at 02:23:33PM -0800, Andrew Morton wrote:
This seems rather slow and bloaty. Why not
struct tjpointer {
struct list_head list;
void *pointer;
};
And then callers do things like
struct tjpointer *tjp;
lock();
On Thu, 13 Nov 2014 17:27:36 -0500 Tejun Heo t...@kernel.org wrote:
Hello, Andrew.
On Thu, Nov 13, 2014 at 02:23:33PM -0800, Andrew Morton wrote:
This seems rather slow and bloaty. Why not
struct tjpointer {
struct list_head list;
void *pointer;
};
And then callers
26 matches
Mail list logo